深入理解Python密码学:使用PyCrypto库进行加密和解密
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
# 生成随机密钥
key = get_random_bytes(16)
# 创建AES密码对象
aes = AES.new(key, AES.MODE_EAX)
# 需要加密的数据
data = b"secret data"
# 加密数据并获取加密文本,同时获取附加信息(例如nonce和tag)
ciphertext, tag = aes.encrypt_and_digest(data)
# 打印加密后的数据
print("Ciphertext:", ciphertext)
# 解密数据
decrypted = aes.decrypt_and_verify(ciphertext, tag)
# 验证解密后的数据是否与原始数据一致
assert decrypted == data
print("Decrypted data is valid.")
这段代码演示了如何使用PyCrypto库中的AES模块进行加密和解密操作。首先,我们生成了一个随机的密钥,然后创建了一个AES密码对象。接着,我们使用encrypt_and_digest
方法进行加密,并且保存返回的加密文本和验证标签。最后,我们使用decrypt_and_verify
方法进行解密,并且验证解密后的数据是否与原始数据一致。这个过程展示了如何使用AES算法进行安全的数据加密和解密。
评论已关闭