python3 rsa加密解密
时间: 2024-03-23 19:34:02 浏览: 121
RSA是一种非对称加密算法,用于数据的加密和解密。在Python3中,可以使用`cryptography`库来实现RSA加密和解密。
首先,你需要安装`cryptography`库。可以使用以下命令来安装:
```
pip install cryptography
```
接下来,我们可以使用以下代码来生成RSA密钥对、进行加密和解密操作:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
public_key = private_key.public_key()
# 将密钥保存为PEM格式
private_pem = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.NoEncryption()
)
public_pem = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
# 加密
message = b"Hello, World!"
ciphertext = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 解密
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 打印结果
print("加密后的密文:", ciphertext)
print("解密后的明文:", plaintext)
```
这段代码首先生成了一个RSA私钥和对应的公钥,然后使用公钥对消息进行加密,再使用私钥对密文进行解密。最后打印出加密后的密文和解密后的明文。
阅读全文