python - pyOpenSSL 创建一个 pem 文件

标签 python pyopenssl

我在 python 中使用以下代码和 pyOpenSSL 创建了一个 key 对:

from OpenSSL import crypto
k = crypto.PKey()
k.generate_key(crypto.TYPE_RSA, 2048)
  1. 现在如何从 key 对象创建私钥和公钥 .pem 文件?
  2. 如果有可用的教程,请告诉我。我没有找到。从手册中很难知道,因为我是 OpenSSL 的新手。
  3. 如果 RSA 中没有使用特定的唯一 key ,相同代码创建两个相同 key 对的可能性有多大?

最佳答案

我知道这是一个老问题 - 但正如我刚刚发现的那样,我想我应该添加一个答案。

使用 Python 3.x 执行此操作的最简单方法是使用 PyCryptodome .

Python 中的(对于 2048 位 key ):

from Cryptodome.PublicKey import RSA
key = RSA.generate(2048)
pv_key_string = key.exportKey()
with open ("private.pem", "w") as prv_file:
    print("{}".format(pv_key_string.decode()), file=prv_file)

pb_key_string = key.publickey().exportKey()
 with open ("public.pem", "w") as pub_file:
    print("{}".format(pb_key_string.decode()), file=pub_file)

如果您想在 (Linux) 命令行上检查私钥,请使用:

$ openssl rsa -check -inform pem -noout -in private.pem 
RSA key ok
...

关于python - pyOpenSSL 创建一个 pem 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19651587/

相关文章:

Python将png文件发送到默认打印机

python - 使用 flask_restful 构建 REST Api 时出错

python - 带有冒号的时区偏移的日期时间 strptime 问题

python - Scrapy - 爬行和抓取网站

Python SSL 套接字证书验证失败错误

python - 在 python 的请求库中禁用 SSL 证书验证是否安全?

Python 3.3 Mysql 连接器

ssl - 在 Bluemix 上安装 pyOpenSSL

python - 使用 pip 安装任何模块时出错,但 easy_install 有效

python-3.x - 如何修复 Python 中的 urlopen 错误?使用 youtube-dl