用Python实现RSA加密算法

2023-03-26 00:00:00 python rsa 加密算法

RSA是一种非对称加密算法,被广泛应用于信息安全领域。在Python中,我们可以使用pycryptodome库来实现RSA算法。下面是一个详细的例子:

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP

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

# 获取公钥和私钥
private_key = key.export_key()
public_key = key.publickey().export_key()

# 打印公钥和私钥
print("私钥:\n", private_key.decode())
print("公钥:\n", public_key.decode())

# 加密数据
data = b"pidancode.com"
cipher = PKCS1_OAEP.new(key)
encrypted_data = cipher.encrypt(data)

# 解密数据
cipher = PKCS1_OAEP.new(key)
decrypted_data = cipher.decrypt(encrypted_data)

# 打印加密前后的数据
print("加密前的数据:", data)
print("加密后的数据:", encrypted_data)
print("解密后的数据:", decrypted_data)

在上面的代码中,首先使用RSA.generate()方法生成了一个密钥对。然后使用key.export_key()方法获取私钥,使用key.publickey().export_key()方法获取公钥,并将它们打印出来。

接着,我们定义了待加密的数据,使用PKCS1_OAEP.new(key)创建了一个RSA加密器,并使用encrypt()方法进行加密,得到了加密后的数据。

最后,我们使用相同的加密器和解密器,使用decrypt()方法对加密后的数据进行解密,得到了原始数据。

需要注意的是,RSA加密算法具有较高的计算复杂度,因此在处理大量数据时可能会影响性能。另外,为了保证安全性,通常会采用一些额外的措施来保护密钥,如密码保护、密钥管理等。

相关文章