import hashlib
import base64
from Crypto.Cipher import AES
iv = ""
BS = AES.block_size
class AESCipher:
def __init__(self, key, ivIn):
self.key = hashlib.sha256(key).digest()
global iv
iv = ivIn
def encrypt(self, raw):
raw = self.on_pad(raw)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(raw))
def decrypt(self, enc):
enc = base64.b64decode(enc)
dIv = enc[:BS]
cipher = AES.new(self.key, AES.MODE_CBC, dIv)
def on_pad(self, s):
return s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
def on_unpad(self, s):
return s[:-ord(s[len(s)-1:])]