【发布时间】:2018-10-18 10:04:53
【问题描述】:
我收到了由 Java 应用程序进行 RSA 加密的数据和 DER 格式的 RSA 公钥。我使用 pycrypto 编写了一个简单的 Python 脚本来解密数据,但是输出包含似乎是加密文本以及我正在寻找的内容。这很不整洁,不适合进一步处理。
原始字符串,我的预期输出类似于:
elem:1234567890:0987654321
加密数据的应用程序所有者告诉我
- 从 Base64 解码字符串
- 使用他们提供给我的私钥解密字符串(DER 格式)
我的 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>
如你所见,我需要的东西在那里,但也有其他奇怪的角色回来了。
【问题讨论】:
-
请原谅问题中的错字。我正在尝试使用私钥来解密字符串,当然不是公钥。
-
您需要 1) 显示 java 加密代码,以及 2) 说明您用于 RSA 加密的 Python 包。
-
很遗憾,我没有加密代码。我会尝试得到它。我正在使用 pycrypto
-
@stovfl 不,只是 I2OSP 不会在这里给出答案。指定填充可能会。
标签: python cryptography rsa