Случайные пароли из строчных и прописных букв, цифр и спецсимволов: длина от 4 до 128, исключение похожих и неудобных символов, гарантия состава и оценка стойкости. Пароли собирает системный генератор браузера.
Пароли пересобираются сами при любом изменении настроек — нажимать «Сгенерировать» не нужно.
Пока нечего показать: настройки противоречивы, причина написана под полем.
Пароль — единственное, что стоит между аккаунтом и тем, кто подбирает к нему ключ. Придуманные человеком пароли плохи не тем, что их легко угадать целиком, а тем, что они предсказуемы по частям: слова, имена, даты и замены вроде «a» вместо «@» перебираются словарём за минуты. Случайная строка таких зацепок не даёт — каждый её символ равновероятен, и перебрать её можно только целиком.
Пароли собирает системный генератор браузера (crypto.getRandomValues) прямо на странице: он берёт энтропию у операционной системы, и предсказать последовательность нельзя даже теоретически. Ничего никуда не отправляется, пароли не сохраняются — обновите страницу, и их не станет.
Настройки решают две разные задачи. Первая — стойкость: длина, наборы символов и оценка в битах с примерным временем перебора. Вторая — вставляемость: пароль, который некуда вставить, бесполезен, поэтому можно исключить похожие символы (их путают при ручном вводе) и неудобные (кавычки, слэши, скобки, запятые — они ломают конфиги, командную строку и CSV). Взамен инструмент следит, чтобы в пароле был хотя бы один символ из каждого включённого набора: этого требуют многие сайты.
Оценка опирается на энтропию: длина пароля умножается на двоичный логарифм размера алфавита — это число бит, которыми нумеруется каждый вариант. 16 символов из алфавита в 26 букв дают около 75 бит, те же 16 символов из букв, цифр и спецсимволов — около 103 бит. Дальше энтропия переводится в словесную оценку и в примерное время перебора при 10¹¹ попыток в секунду. Оценка приблизительная: она знает только длину и алфавит и ничего не знает о том, как пароль хранится и не попал ли он в утечку.
Seed нужен там, где результат требуется повторить: одно и то же число даёт одну и ту же последовательность. Для пароля это вредно: записанный seed — это и есть пароль, только в другом виде, и любой, кто его увидит, соберёт ту же строку. Поэтому здесь единственный источник случайности — системный генератор браузера (crypto.getRandomValues), у которого нет ни seed, ни состояния, которое можно было бы подобрать.
Нет. Пароли собираются и остаются в браузере: страница не отправляет запросов и не пишет в локальное хранилище. Обновив или закрыв страницу, вы потеряете список — и это правильное поведение. Готовый пароль стоит сохранить в менеджере паролей, а не на странице генератора.
Похожие (i, l, 1, I, L, 0, O, o) отличаются одной палочкой или кольцом, и их путают, когда пароль переписывают с экрана или с листа бумаги. Неудобные — кавычки, слэши, вертикальная черта, скобки всех видов, точка с запятой, двоеточие, запятая и пробел — ломают вставку: кавычка закрывает строку в конфиге, пробел делит команду на аргументы в командной строке, вертикальная черта и угловая скобка перенаправляют вывод, а запятая и точка с запятой разделяют поля в CSV. Исключение уменьшает алфавит и вместе с ним стойкость, поэтому включайте его, только если пароль придётся вставлять руками.
Для обычных сервисов достаточно 12–16 символов при полном алфавите: это 75–103 бита. Длина важнее экзотики — каждый добавленный символ увеличивает стойкость в разы, а включение ещё одного набора добавляет всего несколько бит. Для важных аккаунтов (почта, банк, менеджер паролей) берите 20 символов и больше. И главное: у каждого сервиса пароль должен быть свой, потому что утечка на одном сайте обнуляет стойкость на всех, где повторён тот же пароль.
Включите нужные наборы флажками: инструмент гарантирует, что в каждом пароле есть хотя бы один символ из каждого включённого набора, а остаток добирается из общего алфавита и перемешивается. Если нужных символов в наборах нет, добавьте их в поле «Свои символы» — они войдут в алфавит. Если сайт, наоборот, запрещает часть символов, включите исключение неудобных. Следите только за длиной: она не должна быть меньше числа включённых наборов, иначе по символу из каждого не поместится, и инструмент скажет об этом ошибкой.