使用Python OpenSSL从私钥获取公钥

5 投票
2 回答
3661 浏览
提问于 2025-04-17 16:16

我用pyOpenSSL生成了一个私钥,代码如下:

from OpenSSL import crypto
k = crypto.PKey()
k.generate_key(crypto.TYPE_RSA, 2048)
print crypto.dump_privatekey(crypto.FILETYPE_PEM, k)

我该如何从这个私钥中获取公钥字符串呢?我还没找到这个库中哪个方法可以做到这一点。谢谢!

2 个回答

1

更新:现在有了直接获取公钥的方法。

key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
publickey_contents = crypto.dump_publickey(crypto.FILETYPE_PEM, key)

使用这个方法 dump_publickey,你就可以得到你想要的东西。

3

如果

cert = crypto.dump_certificate(crypto.FILETYPE_PEM, k)

不能满足你的需求,那么看起来 pyOpenSSL 并不支持导出公钥。有一个未合并的分支,在这里,它添加了这个功能,但我不能保证它真的能按预期工作。

撰写回答