34 lines
614 B
Python
34 lines
614 B
Python
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)
|
|
|
|
with open('ctext', 'wb') as f:
|
|
f.write(ciphertext)
|
|
|
|
|
|
|