from Crypto.Cipher import AES
import base64
miyao ='0123456789123456' #定义秘钥,秘钥的长度必须是16位的倍数,当前版本的Crypto库对要加密的明文长度要求是16位的倍数。如果要加密的明文长度不是16位的倍数,需要补足16位倍数
password = 'LHQ123456@'
# 加密
def AES_jiami_ECB(miyao,password):
r = len(password)%16 # 计算密码长度对16的余数
if r !=0:
password = password+(16-r)*" " # 在加密的明文后补空格,补足长度为16的倍数
byte_password = password.encode('utf-8') #将字符串转为字节码
aes = AES.new(miyao.encode('utf-8'), AES.MODE_ECB) #实例化AES加密的对象,选择ECB加密
byte_miwen = aes.encrypt(byte_password) # 加密转为字节码的明文,得到加密后的字节码
miwen = str(base64.b64encode(byte_miwen),encoding='utf-8') #将加密后的字节码转为字符串
return miwen
#解密
def AES_jiemi_ECB(miyao,miwen):
miwen_byte = base64.decodebytes(miwen.encode('utf-8')) #把加密后的字符串转为字节码
aes = AES.new(miyao.encode('utf-8'), AES.MODE_ECB) #实例化AES加密的对象,选择ECB加密
mingwen = aes.decrypt(miwen_byte).decode('utf-8')
mingwen = mingwen.strip(' ')
return mingwen