我正在尝试使用私钥解密十六进制格式的消息,该私钥也是十六进制格式,包含Python和pycrypto模块。每次我写最后一行代码时,“rsakey ......”我得到错误“binAscii.Error:Incorrect padding”。我知道这可以使用pycrypto而不是M2Crypto,因为一位同事已经成功解密了这条消息。我错过了什么?我忘了提到我在键的开头和结尾处输入了“----- BEGIN RSA PRIVATE KEY ----”。
from Crypto.PublicKey import RSA
key = open("/path/to/key", "r").read()
rsakey = RSA.importKey(key)
答案 0 :(得分:1)
-----BEGIN RSA PRIVATE KEY----
用于PEM编码(也称为ASCII装甲)密钥。这些键应该是PKCS#8或#12 DER编码的私钥,然后编码到base 64并由起始行和结束行包围(如您所述)。
只需将-----BEGIN RSA PRIVATE KEY----
和-----END RSA PRIVATE KEY----
放在数据周围就不会削减它。