#4 Python для пентестера: Шифрование данных. AES
Создано для: https://t.me/E7TEAM
Введение:
В этой статье мы научимся шифровать данные банковским алгоритмом шифрования AES с помощью языка программирования Python и библиотеки aes_cipher. Ко всему выше сказанному мы разберем как работает алгоритм AES.
Основное:
Advanced Encryption Standard (AES) - один из популярнейших и безопаснейших алгоритмов шифрования на данный момент. Этот шифр используют банки, а гос. структуры используют его для обеспечения безопасности документов TOP-SECRET.
AES является симметричным(для шифрования и дешифрования используется одинаковый ключ), он основан на блоках, Если исходный текст меньше размера блока, перед шифрованием его дополняют. Обычный текст данных сначала преобразуется в двумерный массив, потом через специальную операцию. добавляется ключ шифрования. На выходе получаем зашифрованный текст
Приступим к написанию программы шифрования, для начала установим зависимую библиотеку через pip:
Далее создадим новый файл 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, который используется компаниями по всему миру!