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

Python中利用Crypto.PublicKey.RSA模块对数据进行RSA加密

发布时间:2023-12-17 16:48:31

RSA 加密是一种非对称加密算法,它使用一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密数据。在 Python 中,可以使用 Crypto.PublicKey.RSA 模块来实现 RSA 加密算法。

首先,需要安装 pycryptodome 包。可以使用以下命令安装:

pip install pycryptodome

下面是一个简单的示例,演示如何使用 Crypto.PublicKey.RSA 模块进行 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()

# 保存公钥和私钥到文件
with open('private.pem', 'wb') as f:
    f.write(private_key)
    
with open('public.pem', 'wb') as f:
    f.write(public_key)

# 加载公钥和私钥
private_key = RSA.import_key(open('private.pem').read())
public_key = RSA.import_key(open('public.pem').read())

# 使用公钥进行加密
cipher = PKCS1_OAEP.new(public_key)
encrypted_data = cipher.encrypt(b'Hello, World!')

# 使用私钥进行解密
cipher = PKCS1_OAEP.new(private_key)
decrypted_data = cipher.decrypt(encrypted_data)

print(decrypted_data)

上述代码的示例中,首先生成了一个 2048 位的密钥对,并将公钥和私钥保存到文件中。然后加载公钥和私钥,并使用公钥进行加密,再使用私钥进行解密。

需要注意的是,RSA 加密算法只适用于加密较小的数据块。如果需要加密大量的数据,例如长文本或文件,可以使用对称加密算法先加密数据,然后使用 RSA 加密对称密钥。

希望可以帮助到你!