gpt4 book ai didi

python - 生成使用 AES 封装的 RSA 私钥

转载 作者:行者123 更新时间:2023-11-28 17:39:39 24 4
gpt4 key购买 nike

我是加密新手,一直在玩 openssl。 openssl 中有一条命令可以生成使用 AES 包装的 RSA 私钥:

openssl genrsa -aes128

示例结果将是:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,7787EC23BAB71A7E339FA4BB5B197362

Sqmr8Zb8..bla..blaa
-----END RSA PRIVATE KEY-----

在 PyCrypto 中,我们可以使用以下方法构建类似的私钥:

from Crypto.PublicKey import RSA
key = RSA.generate(1024).exportKey('PEM', 'secret')

哪个会产生

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,760A8103AA096360

HxGmbla..blaa
-----END RSA PRIVATE KEY-----

注意结果是使用三重 DES 包装的。创建使用 AES 包装的私钥(例如上面使用 PyCrypto 的私钥)的正确方法是什么?

最佳答案

RSA key 的 AES 加密将仅在 PyCrypto 2.7 中受支持(目前网站上有可用的 alpha 版本)。但是,AES 加密将应用于 PKCS#8 级别(二进制)而不是 PEM 级别(文本信封)。

这不是您要求的,但更好,因为用于 PEM 的 key 拉伸(stretch)例程不安全。

例如你会做:

from Crypto.PublicKey import RSA
key = RSA.generate(2048)

print key.exportKey('PEM', 'secret', pkcs=8, protection='PBKDF2WithHMAC-SHA1AndAES256-CBC')

关于python - 生成使用 AES 封装的 RSA 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com