Kiz*_*zer 5 encryption cryptography rsa x509 pycrypto
我生成了一个私钥:
openssl req -x509 -out anytime-pub.der -outform der -new -newkey rsa:2048 -keyout anytime.pem -days 3650
Run Code Online (Sandbox Code Playgroud)
在我的旧代码中,我使用 M2Crypto 加载密钥文件来解密某些内容,并且它有效。
from M2Crypto import RSA
ServerRSA = RSA.load_key('keys/anytime.pem', passwd)
key = ServerRSA.private_decrypt(b64decode(cipher),1)
Run Code Online (Sandbox Code Playgroud)
但是当我使用 pycrypto 做同样的事情时,会出现以下错误:
>>> from Crypto.PublicKey import RSA
>>> key = RSA.importKey(open('keys/anytime.pem', 'r'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/xyzkizer/Projects/AnytimeBackend/env/lib/python2.7/site-packages/Crypto/PublicKey/RSA.py", line 641, in importKey
raise ValueError("PEM encryption format not supported.")
ValueError: PEM encryption format not supported.
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我的错误是什么?
谢谢你!
没有错误。私钥以受密码保护的 PKCS#8 结构(在 PEM 信封内)进行编码,当前版本的 PyCrypto (2.6) 无法理解该结构。
不过,该库的当前开发分支提供了对 PKCS#8 的支持。
编辑:PKCS#8,而不是 PKCS#7
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |