简单易用的Crypto.PublicKey.RSA库实现Python中的加密解密功能
发布时间:2024-01-13 14:16:36
在Python中,可以使用Crypto.PublicKey.RSA库进行RSA加密和解密操作。RSA是一种非对称加密算法,它使用了一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密数据。
首先,我们需要安装Crypto库。可以使用以下命令进行安装:
pip install pycryptodome
接下来,我们可以使用以下示例代码来实现RSA加密和解密功能:
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 生成RSA密钥对
key = RSA.generate(2048)
# 获取公钥和私钥
private_key = key.export_key()
public_key = key.publickey().export_key()
# 使用公钥加密数据
def encrypt(data, public_key):
key = RSA.import_key(public_key)
cipher = PKCS1_OAEP.new(key)
encrypted_data = cipher.encrypt(data.encode())
return encrypted_data
# 使用私钥解密数据
def decrypt(data, private_key):
key = RSA.import_key(private_key)
cipher = PKCS1_OAEP.new(key)
decrypted_data = cipher.decrypt(data)
return decrypted_data.decode()
# 加密和解密的使用示例
data = "Hello, world!"
encrypted_data = encrypt(data, public_key)
decrypted_data = decrypt(encrypted_data, private_key)
print("加密前的数据:", data)
print("加密后的数据:", encrypted_data)
print("解密后的数据:", decrypted_data)
在上面的例子中,我们首先生成了一个2048位的RSA密钥对。然后,使用export_key方法获取公钥和私钥。接下来,实现了encrypt和decrypt函数分别用于加密和解密数据。
在加密函数中,我们使用公钥创建了一个PKCS1_OAEP加密器,并使用该加密器对数据进行加密。在解密函数中,我们使用私钥创建了一个PKCS1_OAEP解密器,并使用该解密器对加密后的数据进行解密。
最后,在使用示例中,我们加密了字符串"Hello, world!"并将加密后的数据进行了解密,再将结果打印出来。
这就是使用Crypto.PublicKey.RSA库实现加密和解密功能的简单示例。
