Skip to main content

Утилита для проверки стойкости паролей

Project description

🔐 PassCheck — Проверка стойкости паролей

Python 3.7+ License: MIT

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passcheck-1.0.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

passcheck-1.0.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

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

Hashes for passcheck-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8a3afc5417776141b2a19a91ccfa59a4dc3b58b1ae155f943f1760c90e385cfe
MD5 b9fb14d94940e301ac6136d1a965f803
BLAKE2b-256 d6775bdbdc8ddfbd2c83002423e266b992d81ae7b545178f6a7c8b92c9e7497e

See more details on using hashes here.

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

Hashes for passcheck-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0781f0bcf33946ec738dfcd8f27970d0afaf20382b9ed8c35ce0ba8c47e9db3
MD5 59cce1511ea3d8a5d4483ee41c87a326
BLAKE2b-256 74965e36324c637fc6f5dd9baad3137ad228e6cc2fb27264d0dc1e4a15dc1a24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page