🔐 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!
Metadata
Release files for passcheck 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| passcheck-1.0.0.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| passcheck-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.9 kB
Release files / passcheck-1.0.0.tar.gz
| Download URL | passcheck-1.0.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8a3afc5417776141b2a19a91ccfa59a4dc3b58b1ae155f943f1760c90e385cfe
|
|
BLAKE2b-256 checksum How to use checksums |
d6775bdbdc8ddfbd2c83002423e266b992d81ae7b545178f6a7c8b92c9e7497e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / passcheck-1.0.0-py3-none-any.whl
| Download URL | passcheck-1.0.0-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0781f0bcf33946ec738dfcd8f27970d0afaf20382b9ed8c35ce0ba8c47e9db3
|
|
BLAKE2b-256 checksum How to use checksums |
74965e36324c637fc6f5dd9baad3137ad228e6cc2fb27264d0dc1e4a15dc1a24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|