Найти тему

🔐 Защита данных: Как шифровать файлы с помощью Python и сохранить свои секреты! 🦝

Оглавление

Всем привет! 🦝 Хочу сегодня с вами поделиться своей маленькой программкой, которой я частенько пользуюсь сам. Она предназначена для шифрования файлов, с возможностью расшифровки конечно 😀

🌊вВодная часть

Идея написать эту программу пришла мне в голову, когда я столкнулся cо случаем "шпионажа" на работе🕴🏻. Однажды к нам устроился некий мужчина и как выяснилось, он любил приходить на работу пораньше и сливать данные с рабочих компьютеров своих коллег. Сыграло на руку ему ещё то, что у нас на предприятии было строгое ограничение на пароли для учетной записи пользователя - они должны быть одинаковыми для всех, сейчас у каждого свой пароль. Когда я узнал, что этот, весьма подозрительный тип, копается в компьютерах коллег - решил проверить журнал Windows своего ПК на предмет "несанкционированного" доступа. А именно, не включал ли кто-то мой компьютер раньше меня. И как оказалось - включали.

Енотик, плененный злобной хитростью, наблюдал за шпионом, вынашивая в своей хитрой головке коварный план
Енотик, плененный злобной хитростью, наблюдал за шпионом, вынашивая в своей хитрой головке коварный план

Меня этот факт не шутку разозлил тогда, и я придумал весьма элегантный способ защитить свои данные - написать свою программку для шифрования файлов. Так и родился White List.

🔮Принцип работы

Основой для шифрования файлов выступает модуль Cryptography.Fernet. Этот модуль предоставляет метод симметричного шифрования, известный как Fernet.

Fernet (symmetric encryption) — Cryptography 43.0.0.dev1 documentation

Этот метод использует алгоритм Advanced Encryption Standard (AES) и позволяет как зашифровывать информация, так и расшифровывать её. Главным плюсом этого метода является невозможность получения доступа к зашифрованной информации без специального ключа. Это мне и нужно было для шифрования файлов. То есть, не просто зашифровать данные по алгоритму, а зашифровать с использованием ключа, который будет только у меня.

Исходный код программы, как и исполняемые файлы для операционных систем Windows и Linux вы сможете найти на моём Github, 🔗ссылка ниже

GitHub - winchik65/white_list: The "White List" program is a tool for encrypting files and folders using cryptographic keys

Пример использования на Windows

Загружаем с моего Github исполняемый exe файл для Windows. Для этого переходим в раздел с релизами.

-3

Далее скачиваем себе whitelist.exe

-4

📌Лично я храню эту программку на своей флешке - очень удобно.

Если просто дважды кликнуть по исполняемому файлу – то ничего не произойдет. Это консольная утилита и работать с ней нужно с помощью команды и аргументов. Давайте рассмотрим аргументы программы и заодно попробуем зашифровать целую папку с файлами (включая вложенные папки).

Для зашифровки файлов вводим следующую команду к консоли:

whitelist.exe –e <путь_к_папке>

или же аналогом этой команды:

whitelist.exe –Encrypt <путь_к_папке>
-5

Обратите внимание, рядом с программой создался файл kluch.key – это и есть тот самый ключ🔑. С помощью него шифруются данные и с помощью него же, мы и будем их расшифровывать. Не потеряйте этот файл, иначе информацию никак не расшифровать, по сути она навсегда останется потерянной.

-6

🎉Отлично, файлы зашифрованы. Давайте попробуем посмотреть, что же в них содержится. Если открыть файл, то ценной информации в нём уже не найти.

Файл с текстом статьи стал поврежденным
Файл с текстом статьи стал поврежденным
Исходный код программы превратился в бесполезный набор символов
Исходный код программы превратился в бесполезный набор символов

Очень удобно ещё то, что файлы внешне в проводнике никак не меняются. Так как перезаписываю я только содержимое файла, а не его имя и формат. А так как тот «шпион» копировал в основном файлы чехом, то он даже и не узнает, что они зашифрованы. Зато будет крайне удивлен, когда попробует их открыть, а там лишь набор символов, либо файл поврежден. Ну, а теперь давайте расшифруем данные.

Для расшифровки файлов, нужно просто изменить

whitelist.exe –d <путь_к_папке>

аналог:

whitelist.exe –Decrypt <путь_к_папке>

-9

И если теперь попробовать открыть файл, то он успешно прочтется.

Текст статьи на месте
Текст статьи на месте
Исходный код программы снова в строю
Исходный код программы снова в строю

К слову с помощью программы можно шифровать не только целые папки, но и также отдельные файлы. Для этого в аргументе нужно указать путь к файлу.

-12

📌Ещё, я бы отметил тот факт, что на эту программку, по крайней мере в моем случае, не обращал внимания антивирус.

Пример использования на Linux

Принцип работы с программой на Linux такой же как и на Windows, за исключением нескольких моментов. Нужно скачать другой исполняемый файл.

-13

Я также сохранил этот исполняемый файл на флешку.

-14

Теперь давайте попробуем зашифровать тестовую папку. Для этого я перехожу по путь куда примонтирована флешка

cd /media/enotik/Fleksha/

А дальше всё как и на Windows, единственное, что мы обращаемся не exe, а просто к исполняемому двоичному файлу.

./whitelist -e /home/enotik/test/
-15

Ну и расшифровка аналогична:

./whitelist -d /home/enotik/test/
-16

У программы также есть и другие функции. Например если передать программе следующий аргумент, то она выведет список файлов в директории, включая вложенные.

./whitelist -l /home/enotik/test/
-17

Есть и возможность вывести справочную информацию...

./whitelist -h
-18

Ну а последняя функция тестовая, на этапе разработки я игрался с передаваемыми аргументами и проверял как это работает. Решил оставить, пусть будет.

📌Кстати, о том, как собрать исполняемый файл программы из исходников, я написал в своей новой статье

Ну а на сегодня всё! Спасибо за прочтение! 🦝 Удачных шифровок и расшифровок!

-19

Наука
7 млн интересуются