Když opomenu to, že je ten AES použit naprosto primitivně (radikálně to sníží bezpečnost celé šifry, ale pořád zůstává o dost lepší, než post-it), tak je hlavní problém v tom, že skript nedetekuje chybné zadání hesla (key2). Při špatném key2 nevznikne výjimka, ale nesmyslné heslo (decoded). Pro zachování úrovně skriptu bych doporučil přidat před ten "print 'Decoded', decoded" ještě "assert len(decoded) < 16" ;-)