使用Crypto库,实现加密、解密过程

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值