rsa加密 python
时间: 2023-08-29 16:13:18 浏览: 98
RSA加密是一种非对称加密算法,可以用于加密和解密数据。在Python中,可以使用`cryptography`库来实现RSA加密。下面是一个简单的示例代码:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
public_key = private_key.public_key()
# 将公钥序列化为PEM格式
pem_public_key = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
# 加密数据
message = b'Hello, World!'
encrypted_message = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 打印加密后的数据和公钥
print("Encrypted message:", encrypted_message)
print("Public key:", pem_public_key.decode())
# 解密数据
decrypted_message = private_key.decrypt(
encrypted_message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
# 打印解密后的数据
print("Decrypted message:", decrypted_message)
```
这段代码首先生成了一个2048位的RSA密钥对,然后使用公钥加密了消息,并使用私钥解密了加密后的消息。
阅读全文