from Crypto.Cipher import AES from Crypto.Util.Padding import pad from Crypto.Random import get_random_bytes # Generate new secret key with open('key', 'wb') as f: k1 = get_random_bytes(16) f.write(k1) plaintext = input("Please input the message: ") # Pad plaintext plaintext = plaintext.encode() plaintext = pad(plaintext, 16) # Read Key with open('key', 'rb') as f: aes_key = f.read() assert k1 == aes_key # Encrypt and send (write) message cipher = AES.new(aes_key, AES.MODE_CBC, iv=b'0'*16) ciphertext = cipher.encrypt(plaintext) print(f'Ciphertext: {ciphertext}') with open('ctext', 'wb') as f: f.write(ciphertext)