我有一个R脚本,它调用将敏感数据作为参数传递给Python脚本的系统调用。在传递参数之前,我想使用RSA对这些参数进行加密。然后在Python脚本中解密它们
R码:
# main.R
library(PKI)
key <- PKI.genRSAkey(2048L)
PKI.save.key(key, target = "privkey.pem")
msg <- charToRaw("password")
msg.e <- PKI.encrypt(msg, key)
result = system2("python", args = c("dostuff.py", msg.e), stdout = TRUE)
print(result)
Python:
# dostuff.py
import Crypto
from Crypto.PublicKey import RSA
import ast, sys
key = RSA.importKey(open('privkey.pem').read())
encrypted = sys.argv[1]
decrypted = key.decrypt(ast.literal_eval(str(encrypted)))
print("Decryption returned:", decrypted) # decrypted != "password" :(
当我尝试这个方法时,会得到一个长字符串(不是“password”),或者当我尝试b64decode(binascii.Error:Incorrect padding)时会出错。我得到了很多不同的错误,通常是由于不正确的读取和解码二进制,十六进制,以及它们的字符串表示
PKI.encrypt
需要原始输入是问题的一部分。我不确定Python是如何读取它的,我应该如何转换它,以及当它返回到R时如何解释结果
目前没有回答
相关问题 更多 >
编程相关推荐