Бесплатные инструменты

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

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

Что делает генератор случайных байтов

Этот инструмент создаёт криптографически стойкие случайные байты — сырьё, лежащее в основе почти каждого секрета в программном обеспечении, — и показывает их в любом нужном вам представлении. Закажите от 1 до 4096 байтов и выберите формат вывода: hex в нижнем регистре, hex в верхнем регистре, hex с пробелами между байтами, Base64, десятичный массив с запятыми или двоичную строку из единиц и нулей. Вы обратитесь к нему, когда нужна настоящая случайность, а не запоминающееся значение: для генерации ключа шифрования, вектора инициализации или nonce, соли для хеширования паролей, токена CSRF или сеанса, ключа API либо секрета для подписи.

Как это работает и почему важен источник

Инструмент заполняет массив байтов с помощью браузерного crypto.getRandomValues, который черпает данные из криптографически стойкого генератора случайных чисел операционной системы. Каждый байт — это равномерно распределённое значение от 0 до 255, так что n байтов несут n × 8 бит энтропии — при условии, что источник является настоящим CSPRNG, а он таким и является. Это и есть решающее отличие от Math.random: эта функция быстрая и вполне подходит для перемешивания колоды или выбора цвета, но она предсказуема, и её никогда нельзя использовать для генерации ключей или токенов. Выбранный вами формат вывода меняет лишь то, как записываются те же самые байты, а не то, сколько случайности они содержат: n байтов превращаются в 2n шестнадцатеричных символов, или примерно на треть больше символов в Base64, или восемь цифр на байт в двоичном виде. Кодирование никогда не добавляет энтропии; оно лишь облегчает вставку байтов в файл конфигурации, заголовок HTTP или исходный код.

Выбор размера и формата

Сколько байтов вам нужно, зависит от задачи, но полезное эмпирическое правило охватывает большинство случаев:

  • 16 байтов (128 бит) — это практический минимум для секрета, такого как токен API, идентификатор сеанса или соль.
  • 32 байта (256 бит) — это стандартный размер для стойкого симметричного ключа, например ключа AES-256 или ChaCha20, а также для секрета подписи HMAC.
  • 12 байтов — это обычная длина для nonce в AES-GCM, и nonce никогда нельзя повторно использовать с тем же ключом, иначе гарантии конфиденциальности и целостности шифрования рушатся.

Кнопки формата затем решают, как именно записываются эти байты. Обратитесь к hex, когда вам нужно компактное однозначное значение для вставки в файл конфигурации или переменную окружения; Base64 — когда нужно что-то ещё короче для заголовка HTTP или токена; десятичный массив — когда вы вставляете прямо в исходный код как список байтов; а двоичный — когда хотите увидеть отдельные биты, что удобно для обучения или для рассуждений о битовой маске.

Подводные камни и замечание о приватности

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

Всё здесь генерируется на 100% локально в вашем браузере из собственного криптографического источника случайности — ни один байт никогда не отправляется, не хранится и не журналируется никаким сервером, а это именно то, чего вы хотите, когда на выходе — настоящий секрет. Вы можете убедиться в этом, перейдя в офлайн и понаблюдав, как генератор продолжает работать. Когда вы будете готовы применить эти значения программно, документация s4m API показывает, где должны быть ключи и токены.

Эту страницу нашли по запросу

Реальные поисковые фразы, на которые отвечает эта страница — по ссылкам откроются материалы, раскрывающие тему глубже.