# =========================================================
# encrypt/decrypt using AES secret key
# =========================================================
from Crypto.Cipher import AES
# ---------------------------------------------------------
# pad string with '}' characters on the end
# make string length a multiple of 16
# ---------------------------------------------------------
def pad(s):
return s + ((16-len(s) % 16) * '{')
def encrypt(plaintext):
global cipher
return cipher.encrypt(pad(plaintext))
def decrypt(ciphertext):
global cipher
dec = cipher.decrypt(ciphertext).decode('utf-8')
# remove attached '{' characters
l = dec.count('{')
return dec[:len(dec)-l]
# AES encrypt/decrypt key (generated externaly)
key = b'\xbf\xc0\x85)\x10nc\x94\x02)j\xdf\xcb\xc4\x94\x9d(\x9e[EX\xc8\xd5\xbfI{\xa2$\x05(\xd5\x18'
##print('Key Len: ', len(key))
# create cypher object with AES key
cipher = AES.new(key)
# plaintext message
message = 'secret message just for you'
encrypted = encrypt(message)
decrypted = decrypt(encrypted)
print(' Message: {}'.format(message))
print('Encrypted: {} (len={})'.format(encrypted,len(encrypted)))
print('Decrypted: {}'.format(decrypted))