rsa算法 python
时间: 2023-07-10 17:14:38 浏览: 42
RSA算法是一种非对称加密算法,常用于信息加密传输和数字签名等场景。在Python中,可以使用pycryptodome库来实现RSA算法。
首先,需要安装pycryptodome库,可以使用以下命令进行安装:
```
pip install pycryptodome
```
接下来,可以通过以下代码生成RSA密钥对:
```python
from Crypto.PublicKey import RSA
# 生成2048位的RSA密钥对
key = RSA.generate(2048)
# 获取私钥并保存到文件
private_key = key.export_key()
with open('private.pem', 'wb') as f:
f.write(private_key)
# 获取公钥并保存到文件
public_key = key.publickey().export_key()
with open('public.pem', 'wb') as f:
f.write(public_key)
```
在生成密钥对之后,可以使用以下代码进行加密和解密:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
# 加载私钥
with open('private.pem', 'rb') as f:
private_key = RSA.import_key(f.read())
# 加载公钥
with open('public.pem', 'rb') as f:
public_key = RSA.import_key(f.read())
# 加密
cipher = PKCS1_v1_5.new(public_key)
encrypted_data = cipher.encrypt('Hello World'.encode())
# 解密
cipher = PKCS1_v1_5.new(private_key)
decrypted_data = cipher.decrypt(encrypted_data, None).decode()
print(decrypted_data)
```
以上代码中,使用PKCS1_v1_5算法对数据进行加密和解密。需要注意的是,加密的数据必须是bytes类型,解密后的数据也是bytes类型,需要进行decode()操作才能得到字符串类型的数据。