Как пользоваться
- Укажите длину с помощью ползунка или введите точное количество символов (4–128).
- Выберите типы символов. Если сайт принимает только определенные знаки, измените список символов.
- При необходимости исключите похожие символы. Для сайтов с требованиями к составу пароля оставьте включенным параметр «Использовать каждый выбранный тип хотя бы один раз».
- Скопируйте один пароль или нажмите «Скопировать все», чтобы скопировать все пароли — по одному в строке. Нажмите «Создать заново», чтобы сгенерировать новый набор.
Как это работает
Каждый символ выбирается с помощью crypto.getRandomValues — встроенного в браузер криптографически стойкого генератора случайных чисел. Math.random не используется. Чтобы выбрать символ из набора из n символов, инструмент генерирует 32-битное случайное число и отбрасывает значения из небольшого остатка выше наибольшего числа, кратного n. Такой метод выборки с отбраковкой исключает смещение по модулю, поэтому вероятность выбора каждого символа из набора одинакова.
Если включен параметр «Использовать каждый выбранный тип хотя бы один раз», инструмент сначала выбирает по одному символу каждого выбранного типа, заполняет оставшиеся позиции символами из общего набора, а затем перемешивает все позиции алгоритмом Фишера—Йейтса с использованием того же несмещенного генератора случайных чисел. Поэтому гарантированные символы не всегда оказываются в начале.
Показатель энтропии рассчитывается как log2(размер набора) × длина. Пароль из 16 символов, выбранных из всех 89 символов по умолчанию, имеет около 103 бит энтропии, а из 20 символов — около 129 бит. Правило «использовать каждый тип» немного сокращает число возможных паролей, поэтому фактическая энтропия чуть ниже указанной. Эти категории дают лишь приблизительное представление: менее 28 бит — очень слабый пароль, 28–39 — слабый, 40–59 — средний, 60–99 — сильный, 100 и более — очень сильный. Энтропия описывает только пароли, случайно сгенерированные таким образом, и ничего не говорит о паролях, придуманных человеком.
Примеры
Пароль для записи в менеджере паролей
Оставьте настройки по умолчанию (20 символов, все четыре типа). Получится пароль с энтропией около 129 бит, который практически невозможно угадать. Менеджер паролей сохранит его за вас.
Сайт не принимает некоторые символы
Если банк принимает только !@#$%, замените список символов на эти пять знаков. Набор сократится до 67 символов, поэтому пароль из 16 символов всё равно будет иметь около 97 бит энтропии.
Пароль Wi-Fi, который нужно вводить на телевизоре
Отключите символы и исключите похожие знаки. Без I, l, 1, O, 0 и o пароль из 16 символов, выбранных из оставшихся 56 букв и цифр, будет легко прочитать вслух, а его энтропия всё равно составит около 93 бит.
Часто задаваемые вопросы
Какой длины должен быть пароль?
Для учетных записей, защищенных менеджером паролей, достаточно 16–20 случайных символов. Если пароль приходится часто вводить вручную, длинный пароль только из букв и цифр проще набрать, и он может быть таким же надежным, как более короткий пароль со специальными символами.
Безопасно ли создавать пароли на сайте?
На этой странице пароли создаются полностью в браузере с помощью защищенного генератора случайных чисел операционной системы. Они не отправляются на сервер, не сохраняются и не попадают в аналитику. После загрузки страницы можно отключиться от интернета — инструмент продолжит работать.
Почему исключение похожих символов снижает энтропию?
Энтропия зависит от количества символов, допустимых в каждой позиции. Если убрать символы, набор станет меньше, и каждый символ будет добавлять немного меньше бит. Это можно компенсировать, увеличив длину пароля на несколько символов.
Что такое «смещение по модулю» и почему оно важно?
Простой генератор берет случайное число и использует остаток от деления на размер набора. Если размер набора не делит диапазон случайных чисел нацело, некоторые символы выпадают немного чаще других. Этот инструмент отбрасывает неравномерный остаток и генерирует число заново, поэтому вероятность выбора всех символов одинакова.
Конфиденциальность
Пароли создаются в браузере с помощью crypto.getRandomValues. Они не загружаются на сервер, не сохраняются, не записываются в журналы и не отправляются в аналитику; фиксируется только анонимное событие использования инструмента. Для копирования используется буфер обмена вашего устройства.