Зашифровать / расшифровать объект в R с библиотекой (gpg) - PullRequest
0 голосов
/ 02 октября 2018

У меня есть следующий фрейм данных, который я могу зашифровать, используя пакет библиотеки ( 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 ! 

(запрашивает пароль правильно), а затем десериализации (разл) .Однако, похоже, что gpg_decrypt () доставляет последовательность простых символов в «dec», из которой невозможно восстановить исходный фрейм данных.

Я могу без проблем расшифровать файл в командной строке linux с помощью команды gpg2, а затем прочитать расшифрованный файл с помощью readRSD () в R, что затем восстановит исходный фрейм данных.

Однако я хочу отменить сериализацию () "dec" и, таким образом, расшифровать файл непосредственно в R.

Я знаю, что есть другие решения, такие как защищенный пакет Hadleys, но он не работает безпроблемы (описаны здесь ) для меня тоже.

1 Ответ

0 голосов
/ 14 мая 2019

В пакет gpg R. добавлена ​​поддержка дешифрования необработанных данных.См. https://github.com/jeroen/gpg/issues/5

Зашифрованные данные можно считывать непосредственно в рабочую память R без необходимости сохранять расшифрованный файл на диске.

...