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



我已经能够用DES3创建一个受密码保护的RSA密钥(嗯…我想因为我对这个加密世界很陌生),方法是使用以下命令:

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

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

当然,我总是可以调用os.execute并执行上面的命令,但我认为这是"欺骗":-)。我这么做基本上是为了学习PyCrypto。

提前谢谢。

从PyCrypto 2.5开始,您可以导出RSA私钥并用密码短语进行保护。Triple 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方法。

最新更新