我是R的新手,我尝试在我的数据集中散列几列。我们将数据导出为CSV文件,出于隐私原因需要对某些列进行哈希处理。
当我使用以下语句(使用openssl包)时,我有它工作(哈希)。
df$field1 <- sha256(df$field1, key=sleutel)
它使用sha256从data.frame中散列field1。钥匙(sleutel)之前生成了几行。这条线给了我想要的结果。
我们有很多导出,并且数据库中提供了要散列的字段。我可以在“to_encrypt”变量(class = character)中读取这些字段。
我想在for循环中使用它们,但这似乎不起作用。我的for循环是这样的:
for (i in to_encrypt){
i <- paste("df$",i,sep="")
i <- sha256(i, key=sleutel)
}
我认为这应该有效。没有错误,但字段(本例中为field1)未进行哈希处理。
有什么想法吗?
答案 0 :(得分:0)
使用paste("df$",i,sep="")
并不意味着您将使用所需的df$field1
,df$field2
等列。而是使用[[
提取并重新分配列:
for (i in to_encrypt){
df[[i]] <- sha256(df[[i]], key=sleutel)
}