python实现rsa加解密
时间: 2023-08-28 21:04:47 浏览: 54
RSA是一种非对称加密算法,用于加密和解密数据。以下是Python中使用RSA加密和解密数据的示例代码:
首先,我们需要安装pycryptodome库来使用RSA算法。
```
pip install pycryptodome
```
接下来,我们可以使用以下代码来生成RSA密钥对:
```python
from Crypto.PublicKey import RSA
# 生成4096位的RSA密钥对
key = RSA.generate(4096)
# 保存私钥
private_key = key.export_key()
with open('private_key.pem', 'wb') as f:
f.write(private_key)
# 保存公钥
public_key = key.publickey().export_key()
with open('public_key.pem', 'wb') as f:
f.write(public_key)
```
现在我们已经生成了RSA密钥对,我们可以使用以下代码来加密和解密数据:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 加载私钥
with open('private_key.pem', 'rb') as f:
private_key = RSA.import_key(f.read())
# 加载公钥
with open('public_key.pem', 'rb') as f:
public_key = RSA.import_key(f.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.decode())
```
在上面的代码中,我们首先使用私钥来加密数据,然后使用公钥来解密数据。在实际使用中,我们通常会将公钥发送给其他人,而将私钥保持在本地进行加密和解密操作。