python演示RSA公钥加密原理
时间: 2024-10-28 11:04:18 浏览: 35
RSA是一种非对称加密算法,它基于两个密钥:公钥和私钥。公钥可以公开分享,任何人都可以用它来加密消息;而私钥必须保密,只有接收者才能解密。Python中可以使用内置库`cryptography`来演示RSA加密过程。
首先,安装必要的库:
```bash
pip install cryptography
```
接下来是一个简单的Python示例,展示了如何生成密钥对、加密和解密:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)
public_key = private_key.public_key()
# 准备明文(例如字符串)
plaintext = "Hello, RSA!"
# 对明文进行RSA加密(使用公钥)
message = plaintext.encode()
cipher_text = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print("Encrypted text:", cipher_text)
# 使用私钥解密(还原原始明文)
decrypted_text = private_key.decrypt(
cipher_text,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print("Decrypted text:", decrypted_text.decode())
```
在这个例子中,我们创建了密钥对,然后用公钥加密了一个简单的文本消息,再用对应的私钥解密回原来的文本。注意,实际应用中你需要妥善保管私钥并仅用于解密,以保证数据安全。
阅读全文