用python语言实现rsa算法完整代码
时间: 2024-10-19 14:14:55 浏览: 59
基于python的RSA算法数字签名生成软件设计与实现.docx
RSA是一种非对称加密算法,Python实现RSA的关键在于生成密钥对、加密、解密等操作。下面是一个简单的Python RSA算法实现:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Random import get_random_bytes
# 生成RSA密钥对
def generate_rsa_keys(key_size=2048):
key = RSA.generate(key_size)
private_key = key.export_key()
public_key = key.publickey().export_key()
return private_key, public_key
# 加载密钥进行加密
def encrypt(message, public_key):
rsa_public_key = RSA.import_key(public_key)
cipher = PKCS1_OAEP.new(rsa_public_key)
encrypted_text = cipher.encrypt(message.encode())
return encrypted_text
# 加载私钥进行解密
def decrypt(encrypted_text, private_key):
rsa_private_key = RSA.import_key(private_key)
cipher = PKCS1_OAEP.new(rsa_private_key)
decrypted_text = cipher.decrypt(encrypted_text).decode()
return decrypted_text
# 示例使用
private_key_str, public_key_str = generate_rsa_keys()
message = "Hello, RSA!"
encrypted_message = encrypt(message, public_key_str)
print("Encrypted message:", encrypted_message)
decrypted_message = decrypt(encrypted_message, private_key_str)
print("Decrypted message:", decrypted_message)
```
注意:这个例子使用了`pycryptodome`库,你需要先安装它(`pip install pycryptodome`),并且因为涉及到安全性,实际使用时需要妥善保管和传输秘钥。
阅读全文