Python中RSA密钥生成与存储

2023-03-27 00:00:00 python 生成 密钥

RSA加密算法是一种非对称加密算法,它需要生成一对公私钥来进行加密解密操作。在Python中,可以使用pycryptodome库来生成RSA密钥,并将其存储到文件中。

下面是一个示例代码,演示如何生成RSA密钥对,并将其存储到文件中:

from Crypto.PublicKey import RSA

# 生成密钥对
key = RSA.generate(2048)

# 将私钥存储到文件中
with open('private_key.pem', 'wb') as f:
    f.write(key.export_key())

# 将公钥存储到文件中
with open('public_key.pem', 'wb') as f:
    f.write(key.publickey().export_key())

在上面的示例代码中,我们使用RSA.generate(2048)生成了一个2048位的RSA密钥对,然后将私钥和公钥分别存储到private_key.pem和public_key.pem文件中。

如果需要使用字符串作为密钥对,可以将生成的密钥对进行编码,并转换为字符串。下面是一个示例代码,演示如何将密钥对编码为字符串:

from Crypto.PublicKey import RSA
import base64

# 生成密钥对
key = RSA.generate(2048)

# 编码私钥和公钥
private_key_str = base64.b64encode(key.export_key()).decode('utf-8')
public_key_str = base64.b64encode(key.publickey().export_key()).decode('utf-8')

# 输出编码后的密钥对
print(private_key_str)
print(public_key_str)

在上面的示例代码中,我们使用base64.b64encode对密钥对进行编码,并将编码后的结果转换为字符串。需要注意的是,在将密钥对编码为字符串时,需要使用decode('utf-8')将字节串转换为字符串。

相关文章