Skip to content
OneCodeUnitPublic

About

Генератор паролей

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

25 Commits

Folders and files

Repository files navigation

Генератор паролей от OliveWizard

Описание

Программа для генерации уникальных криптостойких паролей длиной от 6 до 64 символов с различными параметрами:

  • Строчные или заглавные буквы
  • Цифры
  • Дефис и нижнее подчеркивание
  • Специальные символы

Дополнительно можно отметить обязательность появления хотя бы одного символа из выбранных категорий и исключить похожие друг на друга или сложночитаемые символы.

Системные требования

Файл ОС .NET ПЗУ
PassGen.exe Windows 10 x64 1607 и новее .Net 10 (любой вариант) < 0.5 Мб
PassGen.7z Windows 10 x64 1607 и новее - ~ 120 Мб

Сборка из исходников

Запустить скрипт:

  • !publish.bat - версия программы, требующая .NET
  • !publishNoNet.bat - версия программы, НЕ требующая .NET
  • !publishWeb.bat - онлайн-версия (папка publish\web, статический сайт)

Онлайн-версия

Проект PassGen.Web - сайт на Blazor WebAssembly, использующий тот же PasswordGenerator.cs. Пароли генерируются в браузере и никуда не отправляются. Интерфейс адаптивный (телефон, планшет, компьютер), есть светлая и тёмная темы.

Запуск для разработки:

dotnet run --project PassGen.Web

Результат публикации - обычные статические файлы, их можно разместить на любом хостинге (GitHub Pages, Nginx, Netlify и т.д.). Если сайт лежит не в корне домена, нужно поменять <base href="/" /> в PassGen.Web/wwwroot/index.html.

Запуск в Docker

В репозитории есть всё для запуска сайта в контейнере:

Файл Назначение
Dockerfile Двухэтапная сборка: .NET SDK публикует сайт, готовые файлы раздаёт Caddy (порт 8080 внутри контейнера)
docker/Caddyfile Настройки Caddy: готовое сжатие (br, gzip), кэширование, заголовки безопасности, переход на index.html
docker-compose.yml Описание сервиса passgen-web
.dockerignore В сборку попадает только PasswordGenerator.cs, PassGen.Web и docker
.github/workflows/docker-publish.yml GitHub Actions: прогон тестов, затем сборка и публикация образа в ghcr.io/onecodeunit/passgen

Образ собирается автоматически при пуше в master (теги latest и sha-<коммит>) и при пуше тега v* (тег с версией). В пулл-реквестах только запускаются тесты. Запуск готового образа:

docker compose up -d

Сборка из исходников (контекст сборки - корень репозитория):

docker compose up -d --build

Сайт будет доступен на http://127.0.0.1:8080. Контейнер отдаёт обычный HTTP, поэтому для публикации в интернете нужен обратный прокси с HTTPS (Caddy, Nginx, Traefik), иначе в браузере не будет работать кнопка копирования.

Параметры compose-файла (переменные окружения или файл .env рядом с docker-compose.yml, шаблон - .env.example: cp .env.example .env; в Portainer - раздел Environment variables стека):

Переменная По умолчанию Описание
PASSGEN_BIND 127.0.0.1 Адрес хоста, на котором публикуется порт. 127.0.0.1 - прокси на том же сервере; адрес в локальной сети - если прокси в другом контейнере или на другой машине; 0.0.0.0 - все интерфейсы
PASSGEN_PORT 8080 Порт на хосте
PASSGEN_IMAGE ghcr.io/onecodeunit/passgen:latest Образ контейнера (например, конкретная версия ...:v1.0.0)
CADDY_NETWORK proxy Имя внешней docker-сети обратного прокси

Сервис подключается к внешней docker-сети обратного прокси (по умолчанию proxy, имя меняется переменной CADDY_NETWORK). Сеть должна уже существовать (docker network ls), иначе контейнер не запустится; для локальной проверки её можно создать командой docker network create proxy. Прокси обращается к контейнеру по имени: reverse_proxy passgen-web:8080. Если прокси работает не в Docker, секция networks не нужна, достаточно опубликованного порта.

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

Криптографическая стойкость

PassGen использует System.Security.Cryptography.RandomNumberGenerator - криптографически стойкий генератор случайных чисел, рекомендованный Microsoft для генерации паролей и ключей.

Энтропия

Энтропия пароля зависит от его длины и размера алфавита:

Длина пароля Только цифры (10) Буквы (52) Буквы + Цифры (62) Все символы (94) Улучшение читаемости (45)
6 19.93 бит 34.20 бит 35.75 бит 39.46 бит 32.55 бит
12 39.86 бит 68.41 бит 71.50 бит 78.93 бит 65.10 бит
16 53.15 бит 91.21 бит 95.33 бит 105.23 бит 86.80 бит
24 79.73 бит 136.81 бит 143.00 бит 157.85 бит 130.20 бит
32 106.30 бит 182.42 бит 190.66 бит 210.46 бит 173.60 бит
64 212.61 бит 364.83 бит 381.33 бит 420.92 бит 347.20 бит

Интерпретация энтропии

Энтропия Сила пароля
< 60 бит 🔴 Слабый
60-90 бит 🟠 Средний
< 90 бит 🟢 Сильный

Рекомендация: Для максимальной безопасности используйте:

  • Длину не менее 16 символов
  • Все категории символов (заглавные, строчные, цифры, спецсимволы)
  • Опцию "Не менее 1" для гарантии присутствия всех категорий
  • Уникальные пароли для каждого сервиса

Важно: Даже надёжный пароль не защитит от:

  • Фишинговых атак
  • Утечек данных
  • Вредоносного ПО
  • Социальной инженерии

Использование

Графический интерфейс

  1. Выберите категории символов:

    • ☑️ Заглавные (A-Z)
    • ☑️ Строчные (a-z)
    • ☑️ Цифры (0-9)
    • ☑️ Подчёркивание (-, _)
    • ☑️ Символы (!@#$%^&* и др.)
  2. Настройте дополнительные параметры:

    • ☑️ Не менее 1 — обязательное наличие символов из каждой категории
    • ☑️ Улучшить читаемость пароля — исключить визуально похожие символы (0/O, 1/l/I, и т.д.)
  3. Выберите длину пароля с помощью ползунка (6-64 символа)

  4. Нажмите "Новый пароль" для генерации нового пароля. Он так же создаётся при изменении параметров.

  5. Скопируйте пароль нажав на него или кнопку Copy

Screenshot

About

Генератор паролей

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages