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 加密对称密钥。
希望可以帮助到你!
