我得到了由Java应用程序RSA加密的数据和DER格式的RSA公钥。我编写了一个简单的Python脚本,使用pycrypto对数据进行解密,但是输出包含似乎是加密的文本以及我要查找的内容。这很不整洁,不适合进一步加工。你知道吗
原始字符串,预期输出如下:
elem:1234567890:0987654321
加密数据的应用程序的所有者告诉我
我的Python脚本如下所示:
from Crypto.PublicKey import RSA
import base64
import sys
import ast
def decode_rsa(encryptedString, key_path):
key = RSA.importKey(open(key_path).read())
deocdedString = base64.b64decode(encryptedString)
decrpytedString = key.decrypt(deocdedString)
return decrpytedString
print decode_rsa(sys.argv[1], sys.argv[2])
但当我运行代码时,我得到:
python decryptRSA.py Hh6+rJdFA0SPWvbLU8gxbrZXTnYXv3M/XlSU2IHgfGvIMXckrJk/3w7OSjadhNeyIHqzfXNXRexn721lmCh7QZbGXB/cKzuEDr9pAZU6kbrc1BWDLkTuOC5e+vAcV21sebuYQUyWjGGkuMrTtXw9nlT0+h9/GAzFS7wVTFE859w= private_key.der
uB▒#▒▒▒{4elem:1234567890:0987654321&i▒_+▒▒,▒I%▒▒▒▒▒▒(d>
正如你所看到的,我需要的是那里,但也有其他奇怪的角色回来了。你知道吗
您正在对RSA加密文本进行原始解密。RSA需要填充才能确保安全。您需要使用填充模式—可能是OAEP—as indicated in the documentation of PyCrypto。你知道吗
相关问题 更多 >
编程相关推荐