RSA python crypto
时间: 2024-12-20 08:08:49 浏览: 5
RSA(Ron Rivest、Adi Shamir和Leonard Adleman的缩写)是一种非对称加密算法,常用于数据加密和数字签名。在Python中,可以使用`cryptography`库来实现RSA加密和解密。
以下是一个简单的示例,展示了如何在Python中使用RSA进行加密和解密:
1. 安装`cryptography`库:
```bash
pip install cryptography
```
2. 使用RSA进行加密和解密的示例代码:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
# 生成RSA密钥对
def generate_keys():
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
public_key = private_key.public_key()
return private_key, public_key
# 加密数据
def encrypt_data(public_key, plaintext):
ciphertext = public_key.encrypt(
plaintext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
return ciphertext
# 解密数据
def decrypt_data(private_key, ciphertext):
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
return plaintext
# 示例使用
if __name__ == "__main__":
private_key, public_key = generate_keys()
message = b"Hello, RSA!"
print(f"Original message: {message}")
encrypted_message = encrypt_data(public_key, message)
print(f"Encrypted message: {encrypted_message}")
decrypted_message = decrypt_data(private_key, encrypted_message)
print(f"Decrypted message: {decrypted_message}")
```
在这个示例中,我们首先生成了一个RSA密钥对,然后使用公钥对消息进行加密,最后使用私钥对密文进行解密。
阅读全文