利用python实现对RSA的加解密操作 要求公钥加密 私钥解密
时间: 2024-09-27 11:04:44 浏览: 62
在Python中,可以使用`cryptography`库来实现RSA算法的加解密操作。RSA是一种非对称加密技术,它包含两个关键:公钥和私钥。公钥用于加密数据,而私钥用于解密。以下是基本步骤:
1. 安装库:首先需要安装`cryptography`库,你可以通过pip命令安装:
```
pip install cryptography
```
2. 导入库并生成密钥对:使用`cryptography.hazmat.primitives.asymmetric.rsa`模块创建RSA对象,并生成一对密钥:
```python
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import rsa
key_pair = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
private_key = key_pair.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption()
)
public_key = key_pair.public_key().public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
```
3. 加密过程:使用接收者的公钥(即发送者的私钥)加密消息:
```python
plaintext = b"Hello, world!"
encrypted_text = public_key.decode("utf-8")
cipher = serialization.load_pem_public_key(encrypted_text.encode(), backend=default_backend())
ciphertext = cipher.encrypt(plaintext)
```
4. 解密过程:使用自己的私钥解密接收到的密文:
```python
decrypted_text = private_key.decode("utf-8")
decryption_key = serialization.load_pem_private_key(decrypted_text.encode(), password=None, backend=default_backend())
decrypted_message = decryption_key.decrypt(ciphertext).decode()
```
请注意,在实际应用中,你需要妥善保管私钥,避免泄露,因为一旦私钥丢失,任何人都可以读取你的信息。
阅读全文