Python实现AES/CBC/PKCS5Padding加密/解密,需要pycryptodome库,具体代码如下:
pip install pycryptodome
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
def aes_decrypt(key: str, data: bytes) -> bytes:
"""
AES/CBC/PKCS5Padding解密
"""
# 创建cipher对象
cipher = AES.new(key=key.encode(), mode=AES.MODE_CBC, iv=key.encode())
# 对输入数据进行解密
decrypted_data = cipher.decrypt(data)
return unpad(decrypted_data, AES.block_size)
def aes_encrypt(key: str, data: bytes) -> bytes:
"""
AES/CBC/PKCS5Padding加密
"""
# 创建cipher对象
cipher = AES.new(key=key.encode(), mode=AES.MODE_CBC, iv=key.encode())
# 对输入数据进行加密
encrypted_data = cipher.encrypt(pad(data, AES.block_size))
return encrypted_data