我有以下数据框,我可以使用库(gpg)包和我的密钥对其进行加密。
library(gpg)
df <- data.frame(A=c(1,2,3), B=c("A", "B", "C"), C=c(T,F,F))
df <- serialize(df, con=NULL, ascii=T)
enc <- gpg_encrypt(df, receiver="[email protected]")
writeBin(enc, "test.df.gpg")
现在,为了恢复数据帧,事情的逻辑过程是解密文件
dec <- gpg_decrypt("test.df.gpg")
df <- unserialize(dec) #throws error !
(正确提示输入密码),然后反序列化(dec)。但是,似乎 gpg_decrypt() 将一系列纯字符传递给“dec”,从中无法恢复原始数据帧。
我可以使用 gpg2 命令在 linux 命令行上解密文件,没有问题,然后使用 readRSD() 将解密的文件读入 R,然后恢复原始数据帧。
但是,我想反序列化()“dec”,从而将文件直接解密为 R。
我知道还有其他解决方案,例如 Hadleys 安全包,但它对我来说也不是没有问题(在此处描述)。
对解密原始数据的支持已添加到 gpg R 包中。见https://github.com/jeroen/gpg/issues/5
加密数据可以直接读入 R 工作内存,无需将解密文件存储在磁盘上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句