🔐 Настольный инструмент криптографического шифрования и дешифрования файлов
Производственная утилита безопасности для настольных систем на Python, предназначенная для защиты локальных файловых ресурсов с помощью аутентифицированного симметричного шифрования. Приложение оснащено адаптивным графическим интерфейсом пользователя (GUI), созданным на Tkinter, независимым криптографическим движком и структурированным диагностическим журналированием.
Криптографическая логика
- Шифрование: Открытый текст + Секретный ключ ──> Шифротекст
- Дешифрование: Шифротекст + Тот же секретный ключ ──> Открытый текст
🚀 Ключевые возможности
- Интерфейс Tkinter: Чистый, адаптивный графический интерфейс пользователя (GUI) с нативными диалогами выбора файлов операционной системы, адаптивным масштабированием сетки, настраиваемыми цветовыми переходами активных состояний и интерактивными оповещениями о статусе.
- Раздельная архитектура: Полное разделение ответственности между визуальным слоем представления (
CryptoAppGUI) и основными алгоритмами внутренней обработки (MyCryptoProcessor).
- Аутентифицированное шифрование (AES-128): Использует надежную спецификацию Fernet — построенную на AES в режиме CBC с 128-битным ключом — обеспечивая абсолютную конфиденциальность данных и криптографическую целостность.
- Двухцелевая система журналирования: Заменила нестабильные выводы в терминал на нативную конфигурацию логирования, которая одновременно выводит метрики в реальном времени в консоль и записывает постоянные аудиторские следы в
crypto_app.log.
- Устойчивость к ошибкам выполнения: Реализованы строгие процедуры очистки путей, санитизации строк и детальные области проверки try-except для предотвращения сбоев при обходе путей и корректной обработки отсутствующих файлов.
- Защитные механизмы UX (ограничение ввода): Реализованы отдельные браузеры каталогов с ограничением ввода. Селектор открытого текста ограничивает просмотр файлами
.txt, а селектор шифротекста фильтрует исключительно файлы .encrypted, полностью исключая случайные ошибки выбора.
🛠️ Технический стек
- Язык: Python 3.x
- GUI-фреймворк: Tkinter / TTK (нативные компоненты)
- Криптографический движок: cryptography (спецификация Fernet)
- Движок логирования: logging (нативный компонент)
📦 Установка и настройка
-
Клонируйте репозиторий:
git clone https://gitlab.com/rejithregi-group/SecurityProject.git
cd SecurityProject
-
Установите зависимости:
pip install -r requirements.txt
🖥️ Использование и рабочий процесс
Запустите окно приложения из вашего терминала:
python FileEncryptionDecryptionTool.py
Типичный рабочий процесс
- Сгенерируйте новый ключ: Нажмите синюю кнопку, чтобы сгенерировать защищенный файл
.key. Сохраните его безопасно через нативное окно ОС. Предупреждение: Потеря этого ключа означает, что ваши зашифрованные данные не могут быть восстановлены.
- Зашифруйте целевой файл: Нажмите «Обзор...» в строке Целевой файл открытого текста (строго фильтруется по
.txt), выберите ваш мастер-ключ шифрования и нажмите зеленую кнопку выполнения. Приложение выводит защищенную копию с суффиксом .encrypted.
- Расшифруйте целевой файл: Нажмите «Обзор...» в выделенной строке Целевой зашифрованный файл (строго фильтруется по файлам
.encrypted), выберите соответствующий ключ проверки и выполните кнопку угольного цвета, чтобы безопасно восстановить ваш открытый текстовый ресурс на диск.
🔒 Операции безопасности и аудит
Эта утилита активно реализует автоматизированную диагностику для поддержания чистоты следов разработчика:
- Проверка целостности системы: Все файловые операции выполняются внутри безопасных контекстных менеджеров (
with open) для обеспечения сброса блоков данных и безопасных циклов очистки памяти.
- Аудит журналирования: Каждая транзакция сеанса, сопоставление путей ключей и результат операций шифрования явно фиксируются в постоянном файле с именем
crypto_app.log.
👨💻 Автор
📜 Лицензия
Этот проект лицензирован в соответствии с лицензией MIT.