python3.6.5版本保留字总数_Python 3.6.5的坑 AES padding

from Crypto.Cipher import AES

key = ‘DF11-FB15-B7B2-15AB-47B7-7AC4-C6F9-5EFE‘

cryptor = AES.new(key.encode(‘utf-8‘),AES.MODE_CBC,str(key[0:16]).encode(‘utf-8‘))

text = b‘1234567890abc‘

encrypted= cryptor.encrypt(pad_text(text));

def pad_text(s):

‘‘‘Pad an input string according to PKCS#7‘‘‘

BS = AES.block_size

return s + (BS - len(s) % BS) * chr(BS - len(s) % BS).encode("utf-8")

"""

注意啦,

1)当text是二进制流时, chr(BS - len(s) % BS).encode("utf-8")里的".encode("utf-8")"是不能少的, 不然会有如下错误:

TypeError: can‘t concat str to bytes

2)Key必须要.encode(‘utf-8‘): key.encode(‘utf-8‘) , 32位的key

3)IV必须要.encode(‘utf-8‘) : str(key[0:16]).encode(‘utf-8‘),从32位的key取16位当做IV的输入值

#Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32

#Crypto 1.4.1

"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值