Python中RSA密钥生成与存储
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')将字节串转换为字符串。
相关文章