欢迎访问宙启技术站
智能推送

简单易用的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方法获取公钥和私钥。接下来,实现了encryptdecrypt函数分别用于加密和解密数据。

在加密函数中,我们使用公钥创建了一个PKCS1_OAEP加密器,并使用该加密器对数据进行加密。在解密函数中,我们使用私钥创建了一个PKCS1_OAEP解密器,并使用该解密器对加密后的数据进行解密。

最后,在使用示例中,我们加密了字符串"Hello, world!"并将加密后的数据进行了解密,再将结果打印出来。

这就是使用Crypto.PublicKey.RSA库实现加密和解密功能的简单示例。