参考:
https://blog.csdn.net/Programmer_FuQiang/article/details/123565694
https://blog.csdn.net/qq_33682575/article/details/104602515
https://www.jianshu.com/p/a47477e8126a
import base64
test_str = 'hello world!'
# 编码
encode_str = base64.encodebytes(test_str.encode('utf8')) # b'aGVsbG8gd29ybGQh\n'
print(encode_str.decode()) # 默认以utf8解码,结果 aGVsbG8gd29ybGQh
# 解码
decode_str = base64.decodebytes(encode_str) # b'hello world!'
print(decode_str.decode()) # 默认以utf8解码,结果 hello world!
from Crypto.Cipher import AES
import base64
class AesCrypt():
def __init__(self, key, model, iv):
self.model = {'ECB': AES.MODE_ECB, 'CBC': AES.MODE_CBC}[model]
self.key = self.add_16(key)
self.iv = iv.encode()
if model == 'ECB':
self.aes = AES.new(self.key, self.model) # 创建aes对象
elif model == 'CBC':
self.aes = AES.new(self.key, self.model, self.iv) # 创建aes对象
def add_16(self, par):
# python3字符串是unicode编码,需要 encode才可以转换成字节型数据
par = par.encode('utf-8')
while len(par) % 16 != 0:
par += b'\x00'
return par
def aesdecrypt(self, text):
# CBC解密需要重新创建一个aes对象
if self.model == AES.MODE_CBC:
self.aes = AES.new(self.key, self.model, self.iv)
text = base64.decodebytes(text.encode('utf-8'))
self.decrypt_text = self.aes.decrypt(text)
return self.decrypt_text.decode('utf-8').strip('\0')
if __name__ == '__main__':
key = '3583ec0257e2f4c8195eec7410ff1619'
iv = 'd93c0d5ec6352f20'
word = 'wU/2oHphdJ5qzRQh9AltsQ=='
model = 'CBC'
word = "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"
pr = AesCrypt(key, model, iv)
print(pr.aesdecrypt(word))