python实现RSA算法加密和解密
时间: 2024-10-20 20:05:24 浏览: 3
在Python中,可以使用`cryptography`库来实现RSA算法的加密和解密。RSA是一种非对称加密技术,它由公钥和私钥组成,公钥用于加密,私钥用于解密。以下是基本步骤:
**安装库(如果未安装)**:
```bash
pip install cryptography
```
**创建公钥和私钥对**:
```python
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = key.public_key()
```
**加密数据**:
```python
def encrypt_data(plaintext, public_key):
ciphertext = public_key.encrypt(plaintext.encode(), padding=serialization.Padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None))
return ciphertext
# 示例:加密字符串 "Hello, RSA"
plaintext = "Hello, RSA"
encrypted_text = encrypt_data(plaintext, public_key)
```
**解密数据**:
```python
def decrypt_data(ciphertext, private_key):
plaintext = private_key.decrypt(ciphertext, padding=serialization.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)).decode()
return plaintext
# 解密之前加密的数据
decrypted_text = decrypt_data(encrypted_text, key)
```
**注意**:
1. RSA不适合加密大量数据,因为其效率较低,适合小量信息加密。
2. 实际应用中,通常不会直接展示明文和密文,而是将它们保存到文件或通过安全通道传输。
阅读全文