我得到了由Java应用程序加密的RSA数据和以DER格式加密的RSA公钥。我使用pycrypto编写了一个简单的Python脚本来解密数据,但是输出包含似乎是加密的文本以及我正在寻找的内容。这是相当混乱的,不适合进一步处理。
原始字符串,我的预期输出类似于:
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>你可以看到,我需要的是那里,但也有其他奇怪的角色回来。
发布于 2018-10-18 02:04:53
您正在对RSA加密文本进行原始解密。RSA要求填充是安全的。您需要使用填充模式-可能是OAEP - 如PyCrypto文档所示。
https://stackoverflow.com/questions/52836519
复制相似问题