python 通过固定的key进行aes加密

不废话, 直接上代码

# coding=utf-8
import hashlib
from Crypto.Cipher import AES


def to_sixteen(data):
	# encrypt时, 长度必须是16的倍数
	bs = AES.block_size
	padding = bs - len(data) % bs
	padding_text = chr(padding) * padding
	return data + padding_text


def parse_data_from_sixteen(data):
	# 解密时, 删除末尾的, 即使正好长度16, to_sixteen的做法也是末尾添加16个补位
	_len = len(data)
	padding = ord(data[_len - 1])
	return data[:_len - padding]


def encrypt(content):
	magic = 'my_magic_key'
	key = hashlib.sha256(magic).digest()
	# AES.MODE_CBC模式必须长度为16
	iv = key[:16]
	aes = AES.new(key, AES.MODE_CBC, iv)
	return aes.encrypt(to_sixteen(content))


def decrypt(content):
	magic = 'my_magic_key'
	key = hashlib.sha256(magic).digest()
	iv = key[:16]
	aes = AES.new(key, AES.MODE_CBC, iv)
	return parse_data_from_sixteen(aes.decrypt(content))


if __name__ == '__main__':
	data = 'hello world'
	a = encrypt(data)
	print a
	b = decrypt(a)
	print b

运行结果
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值