当前位置: 首页 > 工具软件 > pyOpenSSL > 使用案例 >

pyOpenssl 如何实现公钥加密和解密 python

齐成和
2023-12-01

最近一段时间在用python写一个CA证书中心,期间,客户端将CSR文件或者CA证书文件发送给服务器的时候,应当使用服务器的根证书的公钥加密,到服务器那边,用私钥来解密。但是找遍整个pyopenssl都没有发现,有类似的方法。于是,只好自己在网上看看有没有其他的库可以加载pyopenssl生成的公私钥。终于,找到了,下面上图:

from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding

# 从公钥数据中加载公钥 
    public_key = serialization.load_pem_public_key(key_data,backend=default_backend())

 # 使用公钥对原始数据进行加密,使用PKCS#1 v1.5的填充方式
data_out= public_key.encrypt( data,padding.PKCS1v15())

# 读取私钥数据
    key_file = open(private_key_file_name, 'rb')
    key_data = key_file.read()
    key_file.close()

    # 从私钥数据中加载私钥 这里要注意password是之前在证书里设置得。
    private_key = serialization.load_pem_private_key( key_data,password=b'123456',backend=default_backend())

    # 使用私钥对数据进行解密,使用PKCS#1 v1.5的填充方式
    out_data = private_key.decrypt(data, padding.PKCS1v15())


 类似资料: