PyCrypto:生成使用DES3密码保护的RSA密钥

时间:2012-04-02 15:39:59

标签: python encryption rsa des pycrypto

我已经能够使用以下命令创建一个受DES3密码保护的RSA密钥(好吧...... 我认为因为我对这个加密世界很陌生):

openssl genrsa -out "/tmp/myKey.pem" -passout pass:"f00bar" -des3 2048

现在,如果可能的话,我想在Python脚本中使用PyCrypto。我见过this message,这似乎不鼓励使用PyCrypto来做到这一点。还是那样吗?

当然我总是可以拨打os.execute并执行上述命令,但我会认为“作弊”: - )。我这样做是为了学习PyCrypto。

提前谢谢。

1 个答案:

答案 0 :(得分:6)

从PyCrypto 2.5开始,您可以导出RSA私钥并使用密码保护它。三重DES密钥内部源自密码短语,用于执行实际加密。

例如:

from Crypto import RSA
from Crypto import Random

random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
exportedKey = key.exportKey('PEM', 'my secret', pkcs=1)

变量exportedKey包含密钥的ASCII版本(PEM),根据PKCS#1(加密标准)编码。另一个选项是pkcs=8 - 猜猜 - PKCS#8)。由于结果是标准的,您可以将它与其他几个程序一起使用,包括openssl。 当然,您也可以通过PyCrypto将其重新导入python!

exportKey方法记录在案here