python字符加密2_Python加密—AES加密(2)

AES 加密算法,AES 为 CBC 模式。

key: 16 个字符的密钥

iv: 16 个字符长的 IV

code = { #加密文本必须为16的倍数

"key1": 'value1',

"key2": 'value1',

"key3": 'value1',

"key4": 'value1',

}

key: 'CwcnldOjID07WHKV'

iv: '1973874772082924'

将code组成json串,加密出的二进制数据采用base64加密。

import base64

from Crypto.Cipher import AES

BS = 16

def padding(s):

return s + (BS - len(s) % BS) * chr(BS - len(s) % BS)

def unpadding(s):

return s[0:-ord(s[-1])]

#加密

code = 'hello, world'

key = 'CwcnldOjID07WHKV'

iv = '1973874772082924'

obj = AES.new(key, AES.MODE_CBC, iv)

b = obj.encrypt(padding(code))

aes_code = base64.b64encode(b).decode('utf8')

print('加密数据:', aes_code)

#解密

code2 = 'RmBQezvawfhcWWUWW1K7eg=='

obj = AES.new(key, AES.MODE_CBC, iv)

encrypted = obj.decrypt(base64.b64decode(code2))

decryption_code = unpadding(encrypted.decode('utf8'))

print('解密数据:', decryption_code)

运行结果:

加密数据: RmBQezvawfhcWWUWW1K7eg==

解密数据: hello, world

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值