AESencipher.py 1016 B

12345678910111213141516171819202122232425262728293031
  1. from Crypto.Cipher import AES
  2. import base64
  3. class aescrypt():
  4. def __init__(self, key, model, iv, encode_):
  5. self.encode_ = encode_
  6. self.model = {'ECB': AES.MODE_ECB, 'CBC': AES.MODE_CBC}[model]
  7. self.key = self.add_16(key)
  8. if model == 'ECB':
  9. self.aes = AES.new(self.key, self.model)
  10. elif model == 'CBC':
  11. self.aes = AES.new(self.key, self.model, iv)
  12. def add_16(self, par):
  13. par = par.encode(self.encode_)
  14. if len(par) > 32:
  15. par = par[0:32]
  16. while len(par) % 32 != 0:
  17. par += b'\x00'
  18. return par
  19. def aesencrypt(self, text):
  20. text = self.add_16(text)
  21. self.encrypt_text = self.aes.encrypt(text)
  22. return base64.encodebytes(self.encrypt_text).decode().strip()
  23. def aesdecrypt(self, text):
  24. text = base64.decodebytes(text.encode(self.encode_))
  25. self.decrypt_text = self.aes.decrypt(text)
  26. return self.decrypt_text.decode(self.encode_).strip('\0')