如题,纯个人记录下,好记性不如烂笔头,方面下次查找。
from Crypto.Cipher import AES
import hashlib
import base64
#计算sha
def get_sha256(text):
return hashlib.sha256(text.encode('utf-8'))
def aes256_cbc_encrypt(text, key, iv):
##CBC补齐16倍数,NoPadding方式
padding = lambda s: s + (16 - len(s) % 16) * '\0'
text = padding(text)
#key和iv都要是bytes类型数据
cryptos = AES.new(key, AES.MODE_CBC, iv)
#加密接口参数是bytes类型的数据
enc_text = cryptos.encrypt(text.encode('utf8'))
print(base64.b64encode(enc_text).decode('utf8'))
#enc_text是bytes类型的数据,可根据实际需要base64等操作
return enc_text
def aes256_cbc_decrypt(text, key, iv):
#参数都是bytes类型的数据
cryptos = AES.new(key, AES.MODE_CBC, iv)
#text如果不是bytes,需要转换
dec_text = cryptos.decrypt(text)
#dec_text是bytes类型的数据,可根据实际需要base64等操作,这里是转str
return dec_text.decode('utf8')
#使用sha256的值,作为AES25