使用pycrypto使用PEM RSA密钥解密,

时间:2014-01-05 20:48:12

标签: python encryption cryptography rsa

我正在尝试使用私钥解密十六进制格式的消息,该私钥也是十六进制格式,包含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)

1 个答案:

答案 0 :(得分:1)

-----BEGIN RSA PRIVATE KEY----用于PEM编码(也称为ASCII装甲)密钥。这些键应该是PKCS#8或#12 DER编码的私钥,然后编码到base 64并由起始行和结束行包围(如您所述)。

只需将-----BEGIN RSA PRIVATE KEY---------END RSA PRIVATE KEY----放在数据周围就不会削减它。