python AES CBC Base64加密解密算法

28 阅读1分钟
class AESCipher:
    def __init__(self,key,iv):
        self.key = key
        self.iv = iv

    def encrypt(self,plain_text):
        result = ''
        try:
            key_bytes = self.key.encode('utf-8')
            iv_bytes = self.iv.encode('utf-8')
            plain_text_bytes = plain_text.encode('utf-8')
            padded_data = pad(plain_text_bytes, AES.block_size)
            cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
            result = base64.b64encode(cipher.encrypt(padded_data)).decode('utf-8')
            print('\n' + result)
        except Exception as e:
            print(e)
        return result


    def decrypt(self,cipher_text):
        result = ''
        try:
            enc = base64.b64decode(cipher_text)
            key_bytes = self.key.encode('utf-8')
            iv_bytes = self.iv.encode('utf-8')
            cipher = AES.new(key_bytes, AES.MODE_CBC, iv_bytes)
            decrypted_padded = cipher.decrypt(enc)
            decrypted = unpad(decrypted_padded, AES.block_size)
            result = decrypted.decode('utf-8')
            print('\n' + result)
        except Exception as e:
            print(e)

        return result