May 13, 2022

#4 Python для пентестера: Шифрование данных. AES

Создано для: https://t.me/E7TEAM

Введение:

В этой статье мы научимся шифровать данные банковским алгоритмом шифрования AES с помощью языка программирования Python и библиотеки aes_cipher. Ко всему выше сказанному мы разберем как работает алгоритм AES.

Основное:

Что такое AES?

Advanced Encryption Standard (AES) - один из популярнейших и безопаснейших алгоритмов шифрования на данный момент. Этот шифр используют банки, а гос. структуры используют его для обеспечения безопасности документов TOP-SECRET.

Как устроен AES?

AES является симметричным(для шифрования и дешифрования используется одинаковый ключ), он основан на блоках, Если исходный текст меньше размера блока, перед шифрованием его дополняют. Обычный текст данных сначала преобразуется в двумерный массив, потом через специальную операцию. добавляется ключ шифрования. На выходе получаем зашифрованный текст

Приступим к написанию программы шифрования, для начала установим зависимую библиотеку через pip:

pip install aes_cipher

Далее создадим новый файл cipher-python.py

Импортируем установленную библиотеку: import aes_cipher

определим что будет отвечать за шифрование, а что за расшифровку:

data_encrypter = aes_cipher.DataEncrypter()

data_decrypter = aes_cipher.DataDecrypter()

Теперь создадим функцию для шифрования, она будет принимать путь к файлу и пароль для шифрования:

def encryptfile(file, password):
    with open(file, 'rb') as f: #Получаем доступ к файлу
        data = f.read() #Читаем файл
        data_encrypter.Encrypt(data, password) #Шифруем файл
        with open(file, 'wb') as f:
            f.write(data_encrypter.encrypted_data) #Перезаписываем данные

Теперь функцию для расшифровки файлов:

def decryptfile(file, password):
    with open(file, 'rb') as f: #Получаем доступ к файлу
        data = f.read() #Читаем файл
        data_decrypter.Decrypt(data, password) #Шифруем файл
        with open(file, 'wb') as f:
            f.write(data_decrypter.decrypted_data) #Перезаписываем данные

Теперь мы будем узнавать какое действие требуется выполнить юзеру, с каким файлом и с помощью какого ключа:

file = input('Введите путь к файлу для работы: ')
password = input('Введите пароль: ')
choice = input('1. Шифровка\n2. Расшифровка: ')

Теперь в зависимости от ввода юзера с помощью if и elif мы будем выполнять шифровку и дешифровку:

if choice == '1':
    encryptfile(file, password)
elif choice == '2':
    decryptfile(file, password)

Мы создали программу для шифрования и дешифрования файлов! Вот наш исходный код:

import aes_cipher
data_encrypter = aes_cipher.DataEncrypter()
data_decrypter = aes_cipher.DataDecrypter()
def encryptfile(file, password):
    with open(file, 'rb') as f:
        data = f.read()
        data_encrypter.Encrypt(data, password)
        with open(file, 'wb') as f:
            f.write(data_encrypter.encrypted_data)
def decryptfile(file, password):
    with open(file, 'rb') as f:
        data = f.read()
        data_decrypter.Decrypt(data, password)
        with open(file, 'wb') as f:
            f.write(data_decrypter.decrypted_data)
file = input('Введите путь к файлу для работы: ')
password = input('Введите пароль: ')choice = input('1. Шифровка\n2. Расшифровка: ')
if choice == '1':
    encryptfile(file, password)
elif choice == '2':
    decryptfile(file, password)

Вывод:

Шифрование файлов очень важно в современном мире ИБ. Python позволяет реализовать шифрование с помощью мощнейшего AES, который используется компаниями по всему миру!