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

Bor*_*jaX 7 python encryption des rsa pycrypto

我已经能够通过使用命令创建一个受DES3密码保护的RSA密钥(嗯...... 我认为因为我对这个加密世界很新)

openssl genrsa -out "/tmp/myKey.pem" -passout pass:"f00bar" -des3 2048
Run Code Online (Sandbox Code Playgroud)

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

当然我总是可以打电话os.execute,执行上面的命令,但我会考虑"作弊" :-).我正在这样做以学习PyCrypto.

先感谢您.

Squ*_*ree 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)
Run Code Online (Sandbox Code Playgroud)

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

这里exportKey记录该方法.