Skip to main content

Инструменты

Генератор паролей

Сгенерируйте криптографически случайный пароль полностью в вашем браузере — ничего никуда не отправляется.

Сгенерировать пароль

Типы символов

Как это на самом деле работает

  • Используется 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-RandomGet-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 выше.