From fc90ea022adeb6faf7835a356c7618d4b1ae1f14 Mon Sep 17 00:00:00 2001 From: Anonimbus <38459708+TarushS@users.noreply.github.com> Date: Wed, 5 Oct 2022 03:21:55 +0530 Subject: [PATCH] added aes encryption --- ciphers/aesEncryptDecrypt.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 ciphers/aesEncryptDecrypt.py diff --git a/ciphers/aesEncryptDecrypt.py b/ciphers/aesEncryptDecrypt.py new file mode 100644 index 0000000..e5b52ef --- /dev/null +++ b/ciphers/aesEncryptDecrypt.py @@ -0,0 +1,35 @@ +from Crypto.Cipher import AES +import base64 +import hashlib + +class EasyAES(object): + + def __init__(self, key, iv): + self.__init(key, 128, iv) + + def __init__(self, key, bit, iv): + self.__init(key, bit, iv) + + def __init(self, key, bit, iv): + if(bit == 256): + self.key = hashlib.sha256(key.encode('utf-8')).digest() + else: + self.key = hashlib.md5(key.encode('utf-8')).digest() + self.iv = hashlib.md5(iv.encode('utf-8')).digest() + + self.mode = AES.MODE_CBC + self.bs = AES.block_size + + #padding + self.pad = lambda s: s + (self.bs - len(s) % self.bs) * chr(self.bs - len(s) % self.bs) + self.unpad = lambda s: s[:-ord(s[len(s) - 1:])] + + def encrypt(self, text): + cryptor = AES.new(self.key, self.mode, self.iv) + ciphertext = cryptor.encrypt(self.pad(text).encode('utf-8')) + return base64.b64encode(ciphertext).decode() + + def decrypt(self, text): + text = base64.b64decode(text) + cryptor = AES.new(self.key, self.mode, self.iv) + return self.unpad(cryptor.decrypt(text)).decode()