Перейти к содержанию
100% локально

Генератор случайных байтов

Криптографически стойкие случайные байты в hex, Base64 или массиве байтов.

Выходные данные

Генератор случайных байтов

Сгенерируйте криптографически стойкие случайные байты и получите их в нужной кодировке. Это аналог команд openssl rand -hex 32 и openssl rand -base64 32, только в браузере: укажите количество байтов, выберите формат, и значение сразу появится на экране. Чаще всего такие байты нужны для API-ключей, секретов сессий, ключей шифрования, солей, nonce, CSRF-токенов и тестовых данных.

Выбирайте между hex в нижнем или верхнем регистре, стандартным Base64, безопасным для URL Base64url без дополнения, десятичным массивом байтов вида [12, 255, 7] или массивом с префиксом 0x, который можно вставить прямо в исходный код на C, Go, Rust или Java. Длина задаётся в байтах, а не в символах, поэтому hex-вывод всегда в два раза длиннее числа байтов, а 32 байта дают 256 бит энтропии. Можно создать сразу несколько значений, добавить префикс, например sk_, к каждой строке или разбить hex на группы через дефис, чтобы длинные ключи было легче читать и сравнивать.

Байты берутся из Web Crypto API через crypto.getRandomValues, то есть из того же системного источника, которым браузеры пользуются для TLS, и никогда из Math.random. Одно значение может занимать до 1024 байтов, а за один запуск создаётся до 1000 значений. Итог под результатом показывает количество байтов, биты энтропии, длину вывода и эквивалентную команду openssl для выбранной длины и формата.

Всё работает локально в вашем браузере. Байты генерируются на вашем устройстве, никуда не отправляются и не сохраняются, поэтому созданные секреты остаются у вас. Скопируйте результат, скачайте его как файл .txt или передайте в другой инструмент.

FAQ

Чем это отличается от генератора случайных строк?
Генератор случайных строк выбирает символы из заданного набора и считает символы. Этот инструмент считает байты и затем кодирует их, поэтому длина hex всегда в два раза больше числа байтов, как у openssl rand.
Сколько байтов нужно для секретного ключа?
Для большинства API-ключей и секретов сессий достаточно 32 байтов (256 бит). Минимум для токенов — 16 байтов (128 бит), а для ключей, которые должны выдерживать долгосрочные атаки, берите 64 байта.
Какой формат выбрать?
Для конфигурационных файлов и командной строки лучше всего подходит hex. Base64 короче, а Base64url стоит использовать в URL, JWT-секретах и именах файлов, потому что в нём нет знаков плюс, слэш и дополнения.
Случайные байты действительно случайные и куда-то отправляются?
Они берутся из crypto.getRandomValues, встроенного в браузер генератора случайных чисел, и создаются на вашем устройстве. Ничего не отправляется на сервер и не сохраняется, поэтому ваши секреты остаются локальными.