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

87 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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** — полная автоматизация из командной строки
## Установка
```bash
pip install -r requirements.txt
```
> `tkinterdnd2` — опционально (для drag & drop). Без неё приложение работает нормально.
## Запуск
### GUI
```bash
python cryptz.py
```
### CLI
**Шифрование:**
```bash
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
```
**Расшифровка:**
```bash
python cryptz.py decrypt archive.cryptz -p "MyPassword" -o ./output/
python cryptz.py decrypt archive.cryptz -p "Pass" -k keyfile.bin --otp 123456
```
**Проверка целостности:**
```bash
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 (`..`, абсолютные пути)