from Crypto.Cipher import AES
import base64
# 密钥(key), 密斯偏移量(iv) CBC模式加密密文需要偏移量
key = '1234567890123456'
iv = '9876543210987654'
# 加密函数
def encrypt(text):
# 加密内容需要至少16位密码,不足用空格补齐
cryptor = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))
text = text.encode('utf-8')
# 加密内容需要长达16位字符,所以进行空格拼接
length = 16
count = len(text)
add = length - (count % length)
text = text + (b'\0' * add)
ciphertext = cryptor.encrypt(text)
# 将加密后的数据进行base64编码
return base64.b64encode(ciphertext).decode('utf-8')
# 解密函数
def decrypt(text):
cryptor = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))
# 先对base64解密成bytes格式,并解密后返回bytes数据
plain_text = cryptor.decrypt(base64.b64decode(text.encode('utf-8')))
# 去掉补足的空格
return str(plain_text.rstrip(b'\0').decode('utf-8'))
python数据加密:ASE算法对传输中的数据加密
最新推荐文章于 2025-03-12 20:06:12 发布