Инструменты
Руководства

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

Крипто

Создаёт криптографически стойкие случайные пароли через crypto.getRandomValues.

100 % на клиенте Без бэкенда
На этой странице

Что такое генератор паролей?#

Генератор паролей превращает источник настоящей случайности в строку символов, пригодную как учётные данные. Смысл не просто «сделать подлиннее» — а выбирать из пула символов равномерно, чтобы каждый возможный пароль выбранной длины был равновероятен. Именно эта равномерность позволяет рассуждать о стойкости математически: 16-символьный пароль из 93 символов несёт около 105 бит энтропии, и точка — никакого человеческого смещения, которым можно было бы воспользоваться.

Страница использует crypto.getRandomValues — криптостойкий случайный источник браузера — и делает выборку с выбором с отклонением (rejection sampling). Это важно: наивный ярлык randomByte % poolSize вносит смещение по модулю, если размер пула не делит 256 нацело. Выбор с отклонением отбрасывает смещённые остатки, поэтому выборка несмещена для любого пула — включая неудобный 93-символьный полный набор.

Индикатор стойкости под результатом считается честно как длина × log2(размер пула) — энтропия Шеннона — и разбивается на слабый / средний / хороший / стойкий. Он отражает реально выбранный пул, а не оценку на глаз.

Как пользоваться#

  1. Задайте длину. Значение по умолчанию 16 — хороший универсальный выбор; поле принимает до 4096.
  2. Отметьте классы символов: строчные a-z, заглавные A-Z, цифры 0-9, символы !@#. По умолчанию включены строчные, заглавные и цифры; символы выключены, потому что некоторые формы входа их отвергают.
  3. По желанию отметьте Исключить похожие (i l 1 L o 0 O), чтобы убрать визуально похожие символы и несколько похожих на кавычки знаков — полезно, когда пароль придётся читать вслух или вводить вручную.
  4. Нажмите Создать, затем Копировать. Строка состояния сообщает энтропию в битах и метку стойкости, выведенную из выбранного пула и длины.

Ключевые возможности#

  • Несмещённая случайность. Выбор с отклонением поверх crypto.getRandomValues означает отсутствие модульного смещения даже для пулов, размер которых не степень двойки.
  • Честный индикатор стойкости. Энтропия считается из фактического размера пула и длины, а не оценивается на глаз по символам; диапазоны слабый / средний / хороший / стойкий соответствуют фиксированным порогам в битах (28 / 60 / 100).
  • Режим исключения похожих. Убирает символы, которые вероятнее всего перепутать — для паролей, которые человеку нужно переписывать.
  • Настраиваемая длина до 4096. Нужен ли 16-символьный пароль для входа или 64-символьный API-ключ — один и тот же генератор справится.
  • Без отправки данных. Генерация полностью локальна; пароль никогда не уходит в сеть.

Разбор примера#

При длине 16, всех четырёх классах (строчные + заглавные + цифры + символы) и выключенном Исключить похожие пул равен 93 символам (26 + 26 + 10 + 31). Энтропия, стало быть, 16 × log2(93) ≈ 16 × 6.54 ≈ 105 бит, что попадает в диапазон стойкий (≥ 100 бит). Сгенерированный результат выглядит так:

qM8#fT2$vRkL9@hZ

Включите Исключить похожие, и пул уменьшится до 85 (восемь схожих символов убраны), давая 16 × log2(85) ≈ 103 бит — всё ещё стойкий, но теперь безопасно читать по телефону.

Для контраста: снизьте до длины 12 только со строчными + цифрами (пул 36), и энтропия падает до 12 × log2(36) ≈ 62 бит — лишь хороший. Падение со 105 до 62 бит — не округление: это примерно в 2^43 раз быстрее перебор, и именно поэтому важны и пул символов, и длина.

FAQ#

Какая длина «достаточна»?#

Для пароля входа за сервисом с ограничением частоты запросов комфортны 12–16 символов из широкого пула. Для API-ключа или пароля, который хранится в менеджере без онлайн-защиты от перебора, цельтесь в 25+ символов. Индикатор стойкости говорит правду в битах — всё, что от 100 бит и выше, считается стойким против офлайн-перебора на сегодняшнем железе.

Почему при одних и тех же настройках каждый раз получается новый пароль?#

Потому что лежащие в основе случайные байты при каждом нажатии свежие. В этом и весь смысл — если бы выход был предсказуем, атакующий тоже мог бы его предсказать. Никакого seed’а зафиксировать нельзя — по замыслу.

Стоит ли включать символы?#

Включайте, если принимающая система их не отвергает. Символы расширяют пул (с 62 до 93 для стандартного набора), что напрямую повышает энтропию на символ. Распространённая причина их не использовать — форма входа, запрещающая определённую пунктуацию, а не соображения безопасности.

Сгенерированный пароль безопаснее придуманного мной?#

Почти всегда да. Люди ужасны в случайности — мы сбиваемся на обычные слова, повторяющиеся паттерны и «прогулки» по клавиатуре, под которые и строятся словари. Генератор, равномерно выбирающий из заданного пула, лишён этих привычек, поэтому 16-символьный сгенерированный пароль надёжнее 12-символьного придуманного, который кажется «умным».