AES(Advanced Encryption Standard)是一种对称加密算法,常用于保护敏感数据的安全性。它可以对数据进行加密和解密,使用相同的密钥进行加密和解密操作。
在Python中,你可以使用 cryptography
模块来进行 AES 加密和解密操作。以下是一个简单的示例:
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import padding
from base64 import b64encode, b64decode
def encrypt_AES(key, data):
# 选择AES加密算法和CBC模式
cipher = Cipher(algorithms.AES(key), modes.CBC(b'\x00' * 16), backend=default_backend())
encryptor = cipher.encryptor()
# 使用自动填充
padder = padding.PKCS7(algorithms.AES.block_size).padder()
padded_data = padder.update(data) + padder.finalize()
# 加密数据
ct = encryptor.update(padded_data) + encryptor.finalize()
# 返回Base64编码后的密文
return b64encode(ct)
def decrypt_AES(key, ct):
# 选择AES加密算法和CBC模式
cipher = Cipher(algorithms.AES(key), modes.CBC(b'\x00' * 16), backend=default_backend())
decryptor = cipher.decryptor()
# 解密数据
padded_data = decryptor.update(b64decode(ct)) + decryptor.finalize()
# 移除填充
unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()
data = unpadder.update(padded_data) + unpadder.finalize()
return data
# 128位密钥
key = b'your_secret_key_here'
# 待加密的数据
data = b'Hello, AES encryption!'
# 加密数据
encrypted_data = encrypt_AES(key, data)
print("Encrypted data:", encrypted_data)
# 解密数据
decrypted_data = decrypt_AES(key, encrypted_data)
print("Decrypted data:", decrypted_data.decode('utf-8'))
在这个示例中,我们定义了两个函数 encrypt_AES
和 decrypt_AES
,用于加密和解密数据。你只需要提供密钥和待加密的数据,就可以得到加密后的密文,并且可以通过密文和相同的密钥来还原原始数据。