Skip to content

Instantly share code, notes, and snippets.

@jramseygreen
Last active December 7, 2021 15:50
Show Gist options
  • Save jramseygreen/534b01392b5f60be6b666561c274737e to your computer and use it in GitHub Desktop.
Save jramseygreen/534b01392b5f60be6b666561c274737e to your computer and use it in GitHub Desktop.
python encryption / decryption in string form with AES
from base64 import b64encode, b64decode
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
class CryptoWrapper:
def __init__(self, key):
self.key = (key * 2).encode()
def encrypt(self, message):
message = message.encode()
cipher = AES.new(self.key, AES.MODE_CBC)
return b64encode(cipher.iv + cipher.encrypt(pad(message, AES.block_size))).decode()
def decrypt(self, message):
message = b64decode(message.encode())
iv = message[:16]
message = message[16:]
cipher = AES.new(self.key, AES.MODE_CBC, iv)
return (unpad(cipher.decrypt(message), AES.block_size)).decode()
crpt = CryptoWrapper("password")
test = "test string"
print("encrypting: " + test)
print("encrypted: " + crpt.encrypt(test))
print("decrypted: " + crpt.decrypt(crpt.encrypt(test)))
@jramseygreen
Copy link
Author

This uses pycryptodome (pip install pycryptodome)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment