File encryption with AES

AES encryption requires that each block being written be a multiple of 16 bytes in size. So we read, encrypt, and write the data in chunks. The chunk size is required to be a multiple of 16.

The following script encrypts the file provided by the parameter.

You can find the following code in the aes-file-encrypt.py file inside the pycrypto folder:

from Crypto.Cipher import AESfrom Crypto.Hash import SHA256import os, random, structdef encrypt_file(key, filename):    chunk_size = 64*1024    output_filename = filename + '.encrypted'        # Initialization vector    iv = ''.join(chr(random.randint(0, 0xFF)) for i in range(16))        #create the encryption cipher    encryptor = AES.new(key, AES.MODE_CBC, iv)     #Determine the size of the file ...

Get Mastering Python for Networking and Security now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.