// CRYPTOGRAPHIC TOOLS

Password Generator

Generate secure, random passwords client-side

••••••••••••••••••••
Strength

20

Как работает этот генератор

Каждый символ берётся из crypto.getRandomValues() — того же криптографического генератора случайных чисел, который ваш браузер использует для TLS-рукопожатий и операций WebCrypto. Он получает энтропию из ядра операционной системы, а не из полифилла JavaScript Math.random().

Мы также применяем rejection sampling при отображении случайных байтов в индексы символов. Это маленькая деталь, которую большинство генераторов паролей делает неправильно: если просто вычислить случайныйБайт % размерНабораСимволов, вы вводите небольшое, но реальное смещение в пользу нижних символов в наборе (потому что 256 не делится поровну, например, на 94). Смещение обычно слишком мало, чтобы быть значимым, но для инструмента, явно позиционируемого как криптографический, корректность имеет значение.

Два набора символов, объяснение

Выбор символов для паролей сложнее, чем кажется. Полный набор символов (!@#$%^&*()-_=+[]{};:,.<>?/|~\'\"\\`) обеспечивает больше энтропии на символ, но создаёт трение:

По умолчанию мы используем безопасный набор (!@#$%&*-_=+.?), который работает в 95%+ форм. Если вам нужна максимальная энтропия и цель принимает всё, включите "Расширенный набор" для полного набора.

Что значит "надёжный"

Полоса надёжности основана на энтропии Шеннона — количестве случайных битов в вашем пароле. Каждый бит удваивает количество попыток, необходимых для брутфорса.

Оценка Энтропия Время брутфорса при 1Т попыток/сек
Слабый < 28 бит Секунды
Средний 28–49 бит Часы до дней
Сильный 50–71 бит Десятилетия
Очень сильный 72+ бит Века

Частота в 1 триллион попыток/сек предполагает изощрённого атакующего со специализированным оборудованием. Менеджер паролей защищает и от куда более медленных веб-логинов, где срабатывает ограничение частоты.

Почему ничего не сохраняется

Эта страница нигде не сохраняет ваш пароль. Сгенерированная строка живёт в памяти браузера, пока вы не перезагрузите, не скопируете или не сгенерируете новый. Никакого localStorage, никаких fetch-вызовов, никаких аналитических событий с паролем. Страница даже не генерирует его автоматически при загрузке — вы нажимаете Сгенерировать, когда хотите.

Если вам нужно хранение паролей с синхронизацией, используйте специализированный менеджер паролей. Этот инструмент существует для момента, когда вам нужно придумать надёжный пароль и не хочется об этом думать.

Онлайн против офлайн атак — почему один и тот же пароль одновременно "слабый" и "нормальный"

Когда вы вводите пароль в форму веб-логина, ваша попытка проверяется сервером сайта. Современные сервисы внимательно за этим следят: после трёх или пяти неверных попыток аккаунт временно блокируется, требует капчу или отправляет письмо о "подозрительной активности". Даже со слитым списком паролей атакующий может попробовать может быть 5-10 попыток в минуту до блокировки — и даже с небольшой армией ботов, распределяющих попытки, сложно превысить несколько сотен в час. Это называется rate limiting (ограничение частоты). Против атакующего, ограниченного несколькими сотнями попыток в час, пароль из 8 строчных символов (28 бит энтропии, ~200 миллиардов возможностей) подходит. Он просто не может попробовать достаточно.

Катастрофический сценарий другой. Сайты взламывают, базы данных утекают, хранилища паролей крадут, зашифрованные резервные копии эксфильтруют. Когда это происходит, у атакующего есть *копия* данных на его собственной машине. Нет rate limit. Нет блокировки. Можно натравить на это ферму GPU — миллиарды попыток в секунду. Тот же пароль из 8 символов, который держался вечно против логина сайта, падает за несколько секунд. Модель угрозы переворачивается в тот момент, когда данные покидают контролируемое окружение сервера.

Вот почему тот же пароль отображается как "слабый" на полосе, хотя для большинства использований он совершенно безопасен. Полоса предполагает худший случай: у кого-то есть зашифрованный блоб, и он может атаковать его офлайн на полной скорости.

Что менеджер паролей действительно делает для вас

Менеджер паролей решает проблему офлайн-атаки таким способом, которым люди в одиночку не могут: он позволяет использовать уникальный случайный пароль из 20+ символов для каждого сайта, без необходимости вашему мозгу запоминать ни один из них. Вы запоминаете один мастер-пароль — ваш, выбранный тщательно, длинный, в идеале со словами, которые вы никогда не забудете — и менеджер заботится обо всём остальном. Когда сайт взламывают, раскрывается только этот один пароль, и это случайная строка из 20 символов, которую никакая офлайн-атака не сломает за полезное время. Радиус катастрофы падает с "все мои аккаунты" до "этот конкретный аккаунт, который я заменю".

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