在现代数据安全中,加密算法起着至关重要的作用。特别是非对称加密算法,如RSA(Rivest-Shamir-Adleman),广泛应用于保护敏感信息的传输。本文将详细介绍如何使用RSA算法加密和解密字符串,包括生成密钥对、加密和解密消息的完整代码实现。
什么是RSA加密?
RSA加密是一种非对称加密算法,这意味着它使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。非对称加密的主要优势在于,公钥可以公开发布,而私钥必须安全保存。这种方法确保了即使加密密钥被广泛传播,只有持有解密密钥的人才能读取加密信息。
安装必要的库
在开始之前,确保你的Python环境中已经安装了PyCryptodome
库,这是一个功能强大的加密库,可以实现各种加密算法,包括RSA。
pip install pycryptodome
生成RSA密钥对
首先,我们需要生成一对RSA密钥,包括一个公钥和一个私钥。公钥用于加密消息,而私钥用于解密消息。
from Crypto.PublicKey import RSA
def generate_key_pair():
"""
生成RSA密钥对
"""
key = RSA.generate(2048) # 生成2048位的RSA密钥
private_key = key.export_key() # 导出私钥
public_key = key.publickey().export_key() # 导出公钥
return private_key, public_key
# 生成密钥对
private_key, public_key = generate_key_pair()
加密字符串
使用公钥加密字符串,我们需要导入公钥并创建一个加密对象。然后,使用该对象对字符串进行加密。
from Crypto.Cipher import PKCS1_OAEP