Stronghold: генератор паролей прямо в браузере

Пароли — одна из тех вещей, которые большинство людей придумывают на ходу: имя кота, год рождения, любимое слово с цифрой в конце. Это удобно, но небезопасно. Генератор паролей решает проблему: вместо «придумать» — «скопировать». Stronghold — это именно такой инструмент, реализованный как отдельный модуль на toolz.macrulez.ru.
Что умеет Stronghold
Модуль генерирует один или несколько паролей одновременно, позволяет гибко задать набор символов, длину и дополнительные ограничения, показывает оценку надёжности и даёт возможность скопировать или сохранить результат в файл. Всё работает в браузере — ни один символ не уходит на сервер.
Настройки генерации

Длина и количество
Два слайдера задают основные параметры:
| Параметр | Диапазон | По умолчанию |
|---|---|---|
| Длина пароля | 8 — 128 символов | 16 |
| Количество паролей | 1 — 10 | 5 |
Генерировать сразу несколько вариантов удобно: можно выбрать тот, что лучше запоминается на слух, или просто взять первый.
Набор символов
Шесть независимых переключателей определяют пул символов, из которых собирается пароль:
| Группа | Символы |
|---|---|
| Заглавные латинские | A – Z |
| Строчные латинские | a – z |
| Цифры | 0 – 9 |
| Спецсимволы | ! @ # $ % ^ & * ( ) - _ = + [ ] { } | ; : , . < > ? / ~ ` |
| Кириллица прописная | А – Я |
| Кириллица строчная | а – я |
Кириллица — нестандартный вариант: большинство сайтов её не принимают, но для локального хранения паролей или шифрования она увеличивает пространство символов и тем самым повышает надёжность.
Дополнительные опции
Три переключателя в разделе «Дополнительно» управляют поведением генератора:
Исключить неоднозначные символы
Убирает из пула символы, которые легко перепутать при ручном вводе: 0 и O, 1, l и I, | и `. Полезно, если пароль придётся когда-нибудь вводить с экрана или листка бумаги.
Гарантировать минимум из каждого набора
При случайной генерации не исключено, что пароль не будет содержать ни одной цифры, даже если цифры включены — просто не повезло со случайностью. Эта опция это исправляет: алгоритм проверяет результат и, если какой-то включённый набор не представлен, вставляет из него один символ в случайную позицию. Включена по умолчанию.
Без повторяющихся символов
Каждый символ в пароле будет уникален. Реализовано через алгоритм Фишера — Йетса: весь пул символов перемешивается случайным образом, затем берутся первые N символов. Актуально для коротких паролей или случаев, когда политика безопасности системы это требует. Если размер пула меньше заданной длины пароля — модуль покажет предупреждение.
Исключить конкретные символы
Поле ввода для символов, которых не должно быть в паролях. Типичный сценарий: сайт не принимает @ или " в паролях, хотя формально они включены в спецсимволы. Вместо отключения всей группы — просто указываем конкретные символы. Они убираются из всех групп до генерации, так что в пул не попадут ни прямым образом, ни через ключевые слова.
Ключевые слова
Необычная опция: пользователь вводит произвольный набор слов, а символы из этих слов вплетаются в сгенерированный пароль на равных интервалах. Это не делает пароль менее случайным — позиции остальных символов по-прежнему случайны, — но добавляет в пароль «зацепки», по которым его чуть проще опознать среди других.
Символы из слов предварительно фильтруются: если кириллица выключена, а слово написано по-русски, его символы в пул не попадут.
Индикатор надёжности
Над списком паролей отображается шкала с оценкой в битах энтропии. Энтропия вычисляется по формуле:
H = log₂(N) × L
где N — размер пула символов, L — длина пароля. Чем выше значение, тем сложнее пароль подобрать перебором.
| Диапазон | Уровень |
|---|---|
| менее 28 бит | Очень слабый |
| 28 – 35 бит | Слабый |
| 36 – 59 бит | Средний |
| 60 – 127 бит | Сильный |
| 128 бит и выше | Очень сильный |
Для справки: пароль из 16 символов с латиницей обоих регистров, цифрами и спецсимволами даёт около 105 бит энтропии — этого достаточно для большинства практических задач.
Шкала обновляется мгновенно при изменении любого параметра — можно в реальном времени видеть, как добавление группы символов или увеличение длины влияет на надёжность.
Результаты: скопировать и скачать
Копировать отдельный пароль — клик по любой строке с паролем копирует его в буфер обмена, всплывающее уведомление подтверждает действие.
Скопировать все — кнопка в правом нижнем углу копирует все сгенерированные пароли разделёнными переносами строк, удобно для вставки в менеджер паролей.
Скачать пароли — кнопка рядом готовит текстовый .txt-файл. В нём — не просто список паролей, а полный контекст:
Сгенерировано Stronghold.
https://toolz.macrulez.ru/ru/stronghold
Дата: 24.03.2026
Параметры генерации:
Длина пароля: 16
Количество паролей: 5
Набор символов: Заглавные латинские (A–Z), Строчные латинские (a–z), Цифры (0–9), Спецсимволы (!@#…)
Гарантировать минимум из каждого набора
Пароли:
K#9mRx2vPqL@fN7j
...
Файл называется stronghold-ДД.ММ.ГГГГ.txt. Ссылка в шапке и все подписи параметров адаптируются под текущую локаль сайта: для русского интерфейса /ru/, для английского — /en/.
Реализация
Весь модуль работает в браузере без каких-либо обращений к серверу.
Генерация использует crypto.getRandomValues() — криптографически стойкий генератор псевдослучайных чисел, встроенный в Web Crypto API. Это важно: обычный Math.random() для паролей не подходит, его значения предсказуемы при знании начального состояния.
Алгоритм Фишера — Йетса применяется в режиме «без повторений» и для перемешивания позиций после принудительной вставки символов при опции «гарантировать минимум». Это исключает ситуацию, когда обязательные символы всегда оказываются в фиксированных позициях.
Гарантия минимума работает поверх основной генерации: после формирования базового пароля алгоритм проходит по всем включённым группам, находит отсутствующие и вставляет по одному символу из каждой в случайную свободную позицию. Затем незафиксированные позиции перемешиваются, чтобы расположение обязательных символов не было предсказуемым.
Интерфейс реализован на Vue 3 с Composition API. Все настройки реактивны — пароли пересчитываются мгновенно при изменении любого параметра без кнопки «сгенерировать».
Stronghold доступен на toolz.macrulez.ru вместе с другими модулями: Image Compressor, Tiny SVG, Gradient Fabric и Fav Icona.