Генератор паролей
Сгенерируйте криптографически случайный пароль полностью в вашем браузере — ничего никуда не отправляется.
Сгенерировать пароль
Как это на самом деле работает
- Используется
crypto.getRandomValues()из Web Crypto API — криптографически стойкий генератор случайных чисел, а неMath.random(), который никогда не задумывался как непредсказуемый. - Выбор символов использует отбраковку (rejection sampling), чтобы избежать смещения по модулю — тонкая ошибка во многих генераторах паролей, из-за которой одни символы незаметно оказываются более вероятными, чем другие.
- Если выбрано больше одного типа символов, гарантированно появится хотя бы по одному из каждого — а затем весь пароль, включая позиции этих гарантированных символов, перемешивается той же криптостойкой случайностью.
- Ничего никуда не отправляется. Пароль генерируется и остаётся исключительно в этой вкладке браузера — закройте или обновите страницу, и он исчезнет безвозвратно.
Из терминала
Эти команды генерируют пароль так же, как эта страница — локально, с помощью криптостойкого генератора случайных чисел вашей же машины — ничего не отправляется ни на какой сервер. Здесь намеренно нет варианта через curl, в отличие от инструмента проверки IP: генератор паролей, которому нужно спросить пароль у сервера, — это уже не тот генератор, где «ничего никуда не отправляется» действительно так.
macOS / Linux (bash, zsh)
Читает случайные байты из /dev/urandom и оставляет только те, что входят в разрешённый набор символов — без деления по модулю, а значит без смещения:
LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^&*()-_=+' < /dev/urandom | head -c 20; echoЗамените 20 на нужную длину и отредактируйте диапазоны символов в наборе tr, чтобы изменить допустимые символы.
Windows PowerShell
Используется RandomNumberGenerator, а не Get-Random — Get-Random не является криптостойким и не должен использоваться для чего-либо, связанного с безопасностью. Здесь применяется та же отбраковка (rejection sampling), что и в браузерной версии:
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+'
$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create()
$bytes = New-Object byte[] 1
$limit = 256 - (256 % $chars.Length)
-join (1..20 | ForEach-Object {
do { $rng.GetBytes($bytes) } while ($bytes[0] -ge $limit)
$chars[$bytes[0] % $chars.Length]
})Работает и в Windows PowerShell 5.1 (встроен в любую установку Windows), и в PowerShell 7+. Вставляйте весь блок целиком.
Windows cmd.exe
У cmd.exe вообще нет встроенного криптографического источника случайности, и надёжно эмулировать его одной командой не получится. Самый простой путь: наберите powershell, чтобы запустить сеанс PowerShell прямо из cmd — он есть на любой машине с Windows — а затем выполните блок PowerShell выше.