📅  最后修改于: 2023-12-03 15:19:26.797000             🧑  作者: Mango
AES(Advanced Encryption Standard),也被称为Rijndael加密算法,是一种对称密钥加密算法。在Python中,我们可以使用cryptography
库来实现AES加密和解密操作。
使用以下命令安装cryptography
库:
pip install cryptography
在AES加密中,我们需要使用一个密钥和一个初始化向量(IV)来进行加密和解密操作。密钥和IV的长度根据使用的AES加密模式而定。
from cryptography.fernet import Fernet
# 生成一个随机密钥
key = Fernet.generate_key()
# 生成一个随机初始化向量(IV)
iv = Fernet.generate_key()[:16]
使用生成的密钥和IV,我们可以对数据进行加密:
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
def aes_encrypt(key, iv, data):
cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
encryptor = cipher.encryptor()
encrypted_data = encryptor.update(data) + encryptor.finalize()
return encrypted_data
使用生成的密钥和IV,我们可以对加密的数据进行解密:
def aes_decrypt(key, iv, encrypted_data):
cipher = Cipher(algorithms.AES(key), modes.CBC(iv))
decryptor = cipher.decryptor()
decrypted_data = decryptor.update(encrypted_data) + decryptor.finalize()
return decrypted_data
下面是一个使用AES加密和解密数据的示例:
data = b"Hello, world!"
encrypted_data = aes_encrypt(key, iv, data)
decrypted_data = aes_decrypt(key, iv, encrypted_data)
Python中的cryptography
库提供了方便的API来实现AES加密和解密操作。使用AES算法可以确保数据的机密性和完整性。要记住,密钥的安全非常重要,因此需要采取适当的措施来保护密钥的安全性。