7

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

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

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

当然,我可以随时调用os.execute并执行上述命令,但我认为这是“作弊” :-)。我几乎这样做是为了学习 PyCrypto。

先感谢您。

4

1 回答 1

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方法记录在这里

于 2012-04-02T19:46:51.433 回答