Утилита для проверки стойкости паролей
Project description
🔐 PassCheck — Проверка стойкости паролей
PassCheck — это мощная утилита командной строки для комплексной проверки стойкости паролей. Она помогает выявить слабые, скомпрометированные и предсказуемые пароли, которые могут стать целью злоумышленников.
🎯 Зачем нужен PassCheck?
В эпоху всё возрастающего числа кибератак, использование слабых паролей остаётся одной из главных причин взломов. Даже "сложный" пароль может быть уже скомпрометирован. PassCheck решает эту проблему, предоставляя:
- 🔍 Проверку по реальным утечкам (через HaveIBeenPwned API)
- 📚 Проверку по популярным словарям (например, rockyou.txt)
- 🔐 Анализ криптографической стойкости (энтропия, паттерны)
- ⏱ Оценку времени подбора пароля
- 📊 Подробные рекомендации по улучшению пароля
- 📁 Пакетную проверку множества паролей
- 📤 Экспорт результатов в JSON
🚀 Установка
Требования:
- Python 3.7 или выше
Установка зависимостей:
pip install requests zxcvbn-python colorama
Запуск:
python passcheck.py --help
📖 Использование
🔹 Проверка одного пароля:
python passcheck.py --password "MyP@ssw0rd123"
🔹 Проверка с использованием словаря:
python passcheck.py --password "qwerty123" --dict rockyou.txt
🔹 Чтение пароля из stdin:
echo "MySecretPass" | python passcheck.py
🔹 Пакетная проверка из файла:
python passcheck.py --file passwords.txt --dict rockyou.txt --json report.json
🔹 Экспорт результатов в JSON:
python passcheck.py --password "StrongPass123" --json result.json
📋 Пример вывода
🔍 Анализируем пароль: **********
==================================================
🛑 Проверка по утечкам
==================================================
❌ Пароль найден в 123456 утечках!
🔥 Срочно смените его!
==================================================
📚 Проверка по словарю
==================================================
❌ Пароль найден в словаре!
==================================================
🔐 Анализ сложности
==================================================
🔐 Уровень: Слабый (1/4)
🔮 Время подбора (оффлайн): ~5 минут
⚠️ Предупреждение:
Этот пароль похож на часто используемые комбинации.
💡 Рекомендации:
• Добавьте больше символов.
• Избегайте предсказуемых замен.
==================================================
✅ Анализ завершён
==================================================
🛠 Основные возможности
| Функция | Описание |
|---|---|
| Проверка утечек | Через безопасный API HaveIBeenPwned (k-Anonymity) |
| Проверка по словарю | Поддержка любых текстовых словарей |
| Анализ энтропии | Оценка криптографической стойкости |
| Время подбора | Реалистичная оценка времени взлома |
| Пакетная обработка | Проверка множества паролей из файла |
| Экспорт в JSON | Для интеграции с другими системами |
| Цветной вывод | Удобное визуальное представление |
| Поддержка stdin | Для автоматизации и скриптов |
📁 Формат файлов
passwords.txt
MyPassword123
qwerty123
Summer2024!
...
report.json (пример)
{
"password": "********",
"length": 12,
"leaks": 123456,
"in_dictionary": true,
"score": 1,
"crack_time": "5 минут",
"warning": "Этот пароль похож на часто используемые комбинации",
"suggestions": [
"Добавьте больше символов",
"Избегайте предсказуемых замен"
]
}
📚 Рекомендуемые словари
- rockyou.txt — самый популярный словарь (~14 млн паролей)
- linkedin.txt — пароли из утечки LinkedIn
- elitehacker.txt — словарь для продвинутых атак
Скачать можно с репозиториев по кибербезопасности или через торренты (в образовательных целях).
🔒 Безопасность
- Пароли не передаются полностью — используется k-Anonymity от HIBP
- Локальная обработка — ваши пароли не покидают ваш компьютер
- Нет логирования — утилита не сохраняет пароли в логи
🎯 Для кого этот инструмент?
- Системные администраторы — для аудита паролей сотрудников
- Пентестеры — для оценки стойкости учетных данных
- SOC-аналитики — для анализа инцидентов
- Разработчики — для проверки тестовых паролей
- Обычные пользователи — для повышения цифровой гигиены
🧪 Примеры использования в реальных сценариях
🔍 Аудит паролей в организации:
python passcheck.py --file employee_passwords.txt --dict rockyou.txt --json audit_report.json
🛡️ Интеграция в CI/CD:
# Проверка тестовых учетных данных
python passcheck.py --file test_passwords.txt --json ci_report.json
if [ $(grep -c "score.*[0-2]" ci_report.json) -gt 0 ]; then exit 1; fi
🤖 Автоматизация в скриптах:
#!/bin/bash
for user in $(cat users.txt); do
password=$(get_password_for_user $user)
echo "$password" | python passcheck.py
done
📄 Лицензия
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
🙏 Благодарности
- HaveIBeenPwned — за предоставление API
- zxcvbn-python — за библиотеку анализа паролей
- Сообществу кибербезопасности за вдохновение
📧 Обратная связь
Если у вас есть предложения по улучшению или вы нашли баг — создайте issue на GitHub!
🔐 Делайте свои пароли сильнее с PassCheck!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file passcheck-1.0.0.tar.gz.
File metadata
- Download URL: passcheck-1.0.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a3afc5417776141b2a19a91ccfa59a4dc3b58b1ae155f943f1760c90e385cfe
|
|
| MD5 |
b9fb14d94940e301ac6136d1a965f803
|
|
| BLAKE2b-256 |
d6775bdbdc8ddfbd2c83002423e266b992d81ae7b545178f6a7c8b92c9e7497e
|
File details
Details for the file passcheck-1.0.0-py3-none-any.whl.
File metadata
- Download URL: passcheck-1.0.0-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0781f0bcf33946ec738dfcd8f27970d0afaf20382b9ed8c35ce0ba8c47e9db3
|
|
| MD5 |
59cce1511ea3d8a5d4483ee41c87a326
|
|
| BLAKE2b-256 |
74965e36324c637fc6f5dd9baad3137ad228e6cc2fb27264d0dc1e4a15dc1a24
|