python - 从证书中提取公钥并加密数据

标签 python network-programming rsa pyopenssl

这是家庭作业! 我使用 get_peer_certificate() 获取服务器的证书 并调用 dump_certificate 将证书转储到变量中。格式是 PEM,我觉得很合适。

-----BEGIN CERTIFICATE-----
GIBBERISH................
......................
........................

-----END CERTIFICATE-----

如何从此文件 ('server.pubkey') 中提取服务器的公钥并使用 RSA 算法和任何 python 库加密 plaintext。在撰写本文时,我正在使用 pyOpenSSL

最佳答案

我建议使用更广泛的 crypto library such as M2Crypto具有X509证书功能和RSA加密功能:

from M2Crypto import RSA, X509
data = ssl_sock.getpeercert(1)
# load the certificate into M2Crypto to manipulate it
cert = X509.load_cert_string(data, X509.FORMAT_DER)
pub_key = cert.get_pubkey()
rsa_key = pub_key.get_rsa()
cipher = rsa_key.public_encrypt('plaintext', RSA.pkcs1_padding)

关于python - 从证书中提取公钥并加密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789193/

相关文章:

Java RSA 两次获得相同的代码

perl - 在 Perl 中,如何在不生成警告的情况下检查 Socket 选项的存在?

使用 select 函数关闭服务器

networking - float IP 在 Digital Ocean 上的使用

android - 在 Debug模式下连接 USB 时,Nexus 4 不显示 RSA 对话框

Javascript读取私钥信息

python - 删除引号内的空格

python - 在 Tensorflow 中过滤数据

php - 如何反转内容旋转

python - 第三方应用程序的 Django 翻译