1from Crypto.Cipher import AES
2import binascii,os
3import random, string
4
5iv = os.urandom(16)
6aes_mode = AES.MODE_CBC
7key = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(16))
8print(key)
9encryptor = AES.new(key, aes_mode, iv)
10def aes_encrypt(plaintext):
11 plaintext = convert_to_16(plaintext)
12
13 ciphertext = encryptor.encrypt(plaintext)
14 return ciphertext
15
16def convert_to_16(plaintext): #Overcome the drawback of plaintxt size which should be multiple of len(iv)
17 add = 16 - (len(plaintext) % 16)
18 return(plaintext + ' ' * add)
19
20
21Encrypted = aes_encrypt('Jaisal ')
22print("Encrypted message :",Encrypted)
1>>> from Crypto.Cipher import AES
2>>>
3>>> key = b'Sixteen byte key'
4>>> cipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
5>>> plaintext = cipher.decrypt(ciphertext)
6>>> try:
7>>> cipher.verify(tag)
8>>> print("The message is authentic:", plaintext)
9>>> except ValueError:
10>>> print("Key incorrect or message corrupted")
11