rsa算法加解密代码
时间: 2024-09-23 20:13:55 浏览: 43
Java实现的RSA加密解密算法示例
RSA(Rivest-Shamir-Adleman)算法是一种非对称加密技术,它由三名研究者在1977年首次提出,广泛用于数据加密和数字签名等领域。其核心思想是利用两个大素数相乘得到公钥和私钥,公钥用于加密,私钥用于解密。
以下是使用Python实现RSA基本加解密功能的一个简化示例:
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
def generate_keys():
key = RSA.generate(2048) # 生成2048位的密钥
public_key = key.publickey().export_key('PEM')
private_key = key.export_key('PEM')
return public_key, private_key
def encrypt_message(message, public_key):
key = RSA.import_key(public_key)
cipher_rsa = PKCS1_OAEP.new(key)
encrypted_message = cipher_rsa.encrypt(message.encode())
return encrypted_message
def decrypt_message(encrypted_message, private_key):
key = RSA.import_key(private_key)
cipher_rsa = PKCS1_OAEP.new(key)
decrypted_message = cipher_rsa.decrypt(encrypted_message).decode()
return decrypted_message
# 示例
public_key, private_key = generate_keys()
message = "Hello, RSA!"
encrypted = encrypt_message(message, public_key)
decrypted = decrypt_message(encrypted, private_key)
print(f"原始消息: {message}")
print(f"加密后的: {encrypted.hex()}")
print(f"解密后的: {decrypted}")
```
这个例子中,我们首先生成一对密钥,然后使用公钥加密信息,最后使用私钥解密。请注意,这只是一个基础演示,实际应用中还需要处理错误和安全问题。
阅读全文