| 12345678910111213141516171819202122232425262728293031 |
- from Crypto.Cipher import AES
- import base64
- class aescrypt():
- def __init__(self, key, model, iv, encode_):
- self.encode_ = encode_
- self.model = {'ECB': AES.MODE_ECB, 'CBC': AES.MODE_CBC}[model]
- self.key = self.add_16(key)
- if model == 'ECB':
- self.aes = AES.new(self.key, self.model)
- elif model == 'CBC':
- self.aes = AES.new(self.key, self.model, iv)
- def add_16(self, par):
- par = par.encode(self.encode_)
- if len(par) > 32:
- par = par[0:32]
- while len(par) % 32 != 0:
- par += b'\x00'
- return par
- def aesencrypt(self, text):
- text = self.add_16(text)
- self.encrypt_text = self.aes.encrypt(text)
- return base64.encodebytes(self.encrypt_text).decode().strip()
- def aesdecrypt(self, text):
- text = base64.decodebytes(text.encode(self.encode_))
- self.decrypt_text = self.aes.decrypt(text)
- return self.decrypt_text.decode(self.encode_).strip('\0')
|