我已经能够使用以下命令创建一个受DES3密码保护的RSA密钥(好吧...... 我认为因为我对这个加密世界很陌生):
openssl genrsa -out "/tmp/myKey.pem" -passout pass:"f00bar" -des3 2048
现在,如果可能的话,我想在Python脚本中使用PyCrypto。我见过this message,这似乎不鼓励使用PyCrypto来做到这一点。还是那样吗?
当然我总是可以拨打os.execute
并执行上述命令,但我会认为“作弊”: - )。我这样做是为了学习PyCrypto。
提前谢谢。
答案 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。