#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, который используется компаниями по всему миру!