使用库(gpg)在 R 中加密/解密对象
Encrypt / decrypt object in R with library(gpg)
我有以下数据框,我可以使用库 (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="my@email.com")
writeBin(enc, "test.df.gpg")
现在,为了恢复数据帧,合乎逻辑的事情是解密文件
dec <- gpg_decrypt("test.df.gpg")
df <- unserialize(dec) #throws error !
(提示正确输入密码)然后 unserialize(dec)。然而,似乎 gpg_decrypt() 向 "dec" 传递了一个纯字符序列,从中不可能恢复原始数据帧。
我可以毫无问题地使用 gpg2 命令在 linux 命令行上解密文件,然后使用 readRSD() 将解密的文件读入 R,然后恢复原始数据帧。
但是,我想反序列化() "dec" 从而将文件直接解密到 R 中。
我知道还有其他解决方案,例如 Hadleys 安全包,但它对我来说也 运行 没有问题(描述 here)。
对解密原始数据的支持已添加到 gpg R 包中。参见 https://github.com/jeroen/gpg/issues/5
加密数据可以直接读入R工作内存,无需将解密文件存储在磁盘上。
我有以下数据框,我可以使用库 (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="my@email.com")
writeBin(enc, "test.df.gpg")
现在,为了恢复数据帧,合乎逻辑的事情是解密文件
dec <- gpg_decrypt("test.df.gpg")
df <- unserialize(dec) #throws error !
(提示正确输入密码)然后 unserialize(dec)。然而,似乎 gpg_decrypt() 向 "dec" 传递了一个纯字符序列,从中不可能恢复原始数据帧。
我可以毫无问题地使用 gpg2 命令在 linux 命令行上解密文件,然后使用 readRSD() 将解密的文件读入 R,然后恢复原始数据帧。
但是,我想反序列化() "dec" 从而将文件直接解密到 R 中。
我知道还有其他解决方案,例如 Hadleys 安全包,但它对我来说也 运行 没有问题(描述 here)。
对解密原始数据的支持已添加到 gpg R 包中。参见 https://github.com/jeroen/gpg/issues/5
加密数据可以直接读入R工作内存,无需将解密文件存储在磁盘上。