'''
AESECB加解密
'''
import base64
from Crypto.Cipher import AES

class AESECB:
    def __init__(self, key):
        '''
        Param: key bytes
        '''
        self.key = key
        self.mode = AES.MODE_ECB
        self.bs = 16
        self.PADDING = lambda s: s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs)

    def encrypt(self, text):
        generator = AES.new(self.key, self.mode)
        crypt = generator.encrypt(self.PADDING(text).encode('utf-8'))
        crypt_str = base64.b64encode(crypt).decode('utf-8')
        return crypt_str
    
    def decrypt(self, text):
        generator = AES.new(self.key, self.mode)
        decrypt_bytes = base64.b64decode(text)
        meg = generator.decrypt(decrypt_bytes).decode('utf-8')
        return meg[:-ord(meg[-1])]


if __name__ == '__main__':
    key = b'1234567890abcdef'
    aes = AESECB(key)
    text = 'hello world'
    encrypt_text = aes.encrypt(text)
    print(encrypt_text)
    decrypt_text = aes.decrypt(encrypt_text)
    print(decrypt_text)