Skip to Content
Mastering Python for Networking and Security
book

Mastering Python for Networking and Security

by José Manuel Ortega
September 2018
Intermediate to advanced
426 pages
10h 46m
English
Packt Publishing
Content preview from Mastering Python for Networking and Security

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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Mastering Python for Networking and Security - Second Edition

Mastering Python for Networking and Security - Second Edition

José Manuel Ortega
Python for Cybersecurity

Python for Cybersecurity

Howard E. Poston, III

Publisher Resources

ISBN: 9781788992510Supplemental Content