使用Java对RSA加密的字符串在使用Python解密时包含额外的加密字符

2024-05-15 21:33:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了由Java应用程序RSA加密的数据和DER格式的RSA公钥。我编写了一个简单的Python脚本,使用pycrypto对数据进行解密,但是输出包含似乎是加密的文本以及我要查找的内容。这很不整洁,不适合进一步加工。你知道吗

原始字符串,预期输出如下:

elem:1234567890:0987654321

加密数据的应用程序的所有者告诉我

  1. 从Base64解码字符串
  2. 使用他们提供给我的私钥解密字符串(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>

正如你所看到的,我需要的是那里,但也有其他奇怪的角色回来了。你知道吗


Tags: 数据pathkey字符串import脚本应用程序格式