Files
dinlo 207d2fbbee Initial commit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 18:46:06 +08:00

3.4 KiB
Raw Permalink Blame History

CryptZ Ultimate v5

AES-256-GCM Professional Archiver — шифрование файлов с двухфакторной аутентификацией, файл-ключом и CLI.

Возможности

  • 🔒 AES-256-GCM — аутентифицированное шифрование (замена CBC+HMAC)
  • 🔑 Argon2id KDF — устойчивость к GPU/ASIC-атакам
  • 📦 Сжатие gzip — уменьшение размера архива
  • 🔐 2FA (TOTP) — Google Authenticator / Authy
  • 🗝 Файл-ключ — дополнительный фактор (XOR с основным ключом)
  • 💣 Счётчик попыток с MAC — корректная защита от перебора + самоуничтожение
  • 🗑 Шредер — безопасное удаление оригиналов (3 прохода)
  • Проверка целостности — без полной расшифровки
  • 🖥 GUI — CustomTkinter, drag & drop, индикатор силы пароля, журнал, горячие клавиши
  • CLI — полная автоматизация из командной строки

Установка

pip install -r requirements.txt

tkinterdnd2 — опционально (для drag & drop). Без неё приложение работает нормально.

Запуск

GUI

python cryptz.py

CLI

Шифрование:

python cryptz.py encrypt file1.txt file2.pdf -p "MyPassword" -o archive.cryptz
python cryptz.py encrypt secret/ -p "Pass" -k keyfile.bin --2fa --shred

Расшифровка:

python cryptz.py decrypt archive.cryptz -p "MyPassword" -o ./output/
python cryptz.py decrypt archive.cryptz -p "Pass" -k keyfile.bin --otp 123456

Проверка целостности:

python cryptz.py verify archive.cryptz -p "MyPassword"

Горячие клавиши (GUI)

Комбинация Действие
Ctrl+O Добавить файлы
Ctrl+E Зашифровать
Ctrl+D Расшифровать
Ctrl+G Сгенерировать пароль
Delete Очистить список

Формат файла CryptZ v5

[CRZ5 4B][VERSION 1B][FLAGS 1B]
[SALT 32B][NONCE_META 12B][NONCE_DATA 12B]
[MAX_ATTEMPTS 1B][CURRENT_ATTEMPTS 1B][ATTEMPT_MAC 32B]
[META_LEN 4B][META_CIPHERTEXT ...][DATA_CIPHERTEXT ...]

Структура проекта

cryptz.py          — точка входа (GUI или CLI)
crypto_engine.py   — криптографический движок
ui.py              — графический интерфейс
cli.py             — командная строка
requirements.txt   — зависимости

Безопасность

  • AES-256-GCM: аутентификация + шифрование в одном примитиве, отдельный nonce для метаданных и данных
  • Argon2id: 64MB RAM, 3 итерации, 4 потока
  • Счётчик попыток: защищён HMAC-SHA256 с domain-separated sub-key; при превышении лимита архив уничтожается
  • Безопасное извлечение tar: фильтрация path traversal (.., абсолютные пути)