在for循环中使用R openssl包哈希

时间:2017-05-01 18:20:30

标签: r

我是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)未进行哈希处理。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用paste("df$",i,sep="")并不意味着您将使用所需的df$field1df$field2等列。而是使用[[提取并重新分配列:

for (i in to_encrypt){
  df[[i]] <- sha256(df[[i]], key=sleutel)
}