Python实现AES加密解密

报错:

TypeError: decrypt() cannot be called after encrypt()

原因:

cryptor不能写在主函数中同时给加密函数与解密函数使用,尽管加密解密都是用: cryptor = AES.new(key, mode, iv),

但若将其定义在main并分别传给加密解密同时使用时,会报错。

解决:

在加密与解密方法分别写cryptor = AES.new(key, mode, iv)

报错:

ValueError: Incorrect IV length (it must be 16 bytes long)

原因:

偏移量必须16位

报错:

ValueError: Incorrect AES key length

原因:

密钥长度需为16的倍数

注意:

需加密的内容必须大于密钥长度且为16倍数

实现:

from binascii import b2a_hex, a2b_hex
from Crypto.Cipher import AES

# 密钥在使用该方法时可补足为16倍数
# 偏移量在使用该方法时,在不足16位时补为16位
# 偏移量必须为16位,不可多
def legth(value):
    l = len(value)
    flag = l % 16
    if flag != 0:
        add = 16 - (l % 16)
        value = value + ('\0' * add).encode('utf-8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值