RSA + AES混合加密代码
时间: 2023-08-06 12:04:00 浏览: 194
当然可以!下面是一个使用RSA和AES混合加密的示例代码:
```python
from Crypto.Cipher import AES, PKCS1_OAEP
from Crypto.PublicKey import RSA
from Crypto.Random import get_random_bytes
# 生成RSA密钥对
key = RSA.generate(2048)
private_key = key.export_key()
public_key = key.publickey().export_key()
# 加密数据
data = b'This is a secret message.'
# 使用AES生成随机密钥
session_key = get_random_bytes(16)
# 使用RSA公钥加密AES密钥
rsa_cipher = PKCS1_OAEP.new(RSA.import_key(public_key))
encrypted_session_key = rsa_cipher.encrypt(session_key)
# 使用AES加密数据
aes_cipher = AES.new(session_key, AES.MODE_EAX)
ciphertext, tag = aes_cipher.encrypt_and_digest(data)
# 传输加密后的数据和密钥...
# 接收方解密数据
# 使用RSA私钥解密AES密钥
rsa_cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
session_key = rsa_cipher.decrypt(encrypted_session_key)
# 使用AES解密数据
aes_cipher = AES.new(session_key, AES.MODE_EAX)
decrypted_data = aes_cipher.decrypt_and_verify(ciphertext, tag)
print(decrypted_data.decode())
```
在这个示例中,首先生成了一个RSA密钥对。然后,生成了一个随机的AES密钥,并使用RSA公钥加密了该密钥。接下来,使用AES密钥对要加密的数据进行加密,并生成了一个认证标签。最后,发送加密后的数据和加密的AES密钥给接收方。
接收方使用RSA私钥解密接收到的AES密钥,并使用解密后的AES密钥解密数据,并进行认证。
请注意,这只是一个简单的示例代码,用于演示RSA和AES混合加密的基本概念。在实际应用中,需要更多的安全措施和错误处理。
阅读全文