Генератор паролей
КриптоСоздаёт криптографически стойкие случайные пароли через crypto.getRandomValues.
На этой странице
Что такое генератор паролей?#
Генератор паролей превращает источник настоящей случайности в строку символов, пригодную как учётные данные. Смысл не просто «сделать подлиннее» — а выбирать из пула символов равномерно, чтобы каждый возможный пароль выбранной длины был равновероятен. Именно эта равномерность позволяет рассуждать о стойкости математически: 16-символьный пароль из 93 символов несёт около 105 бит энтропии, и точка — никакого человеческого смещения, которым можно было бы воспользоваться.
Страница использует crypto.getRandomValues — криптостойкий случайный источник браузера — и делает выборку с выбором с отклонением (rejection sampling). Это важно: наивный ярлык randomByte % poolSize вносит смещение по модулю, если размер пула не делит 256 нацело. Выбор с отклонением отбрасывает смещённые остатки, поэтому выборка несмещена для любого пула — включая неудобный 93-символьный полный набор.
Индикатор стойкости под результатом считается честно как длина × log2(размер пула) — энтропия Шеннона — и разбивается на слабый / средний / хороший / стойкий. Он отражает реально выбранный пул, а не оценку на глаз.
Как пользоваться#
- Задайте длину. Значение по умолчанию 16 — хороший универсальный выбор; поле принимает до 4096.
- Отметьте классы символов: строчные a-z, заглавные A-Z, цифры 0-9, символы !@#. По умолчанию включены строчные, заглавные и цифры; символы выключены, потому что некоторые формы входа их отвергают.
- По желанию отметьте Исключить похожие (i l 1 L o 0 O), чтобы убрать визуально похожие символы и несколько похожих на кавычки знаков — полезно, когда пароль придётся читать вслух или вводить вручную.
- Нажмите Создать, затем Копировать. Строка состояния сообщает энтропию в битах и метку стойкости, выведенную из выбранного пула и длины.
Ключевые возможности#
- Несмещённая случайность. Выбор с отклонением поверх
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-символьного придуманного, который кажется «умным».