Генератор криптографических nonce

Разработчик
Реклама · УДАЛИТЬ?

Примеры использования

Что такое одноразовый номер (nonce)?

Реклама · УДАЛИТЬ?

Гид

Генератор криптографических nonce

Генерируйте криптографически безопасные одноразовые номера (числа, используемые один раз) для CSP-заголовков, параметров состояния OAuth, CSRF-токенов, идентификаторов сеанса и многого другого. Использует crypto.getRandomValues() для истинной случайности — без резервного копирования Math.random(). Вывод в шестнадцатеричном, Base64, Base64url или десятичном формате массива. Все выполняется в вашем браузере; ничего не отправляется на какой-либо сервер.

Как использовать

Выберите длину в байтах (8, 16, 24, 32 или 64 байта, или введите пользовательскую длину), выберите формат вывода (шестнадцатеричный, Base64, Base64url или десятичный массив) и укажите, сколько одноразовых номеров сгенерировать. Значения генерируются автоматически при изменении настроек. Копируйте отдельные одноразовые номера или используйте предварительно отформатированные примеры использования, которые автоматически заполняются вашим сгенерированным одноразовым номером для CSP-заголовков, HTML-тегов скриптов, параметров состояния OAuth, CSRF-токенов и файлов cookie сеанса.

Возможности

  • Криптографическая случайность — Исключительно используется crypto.getRandomValues(). Нет резервного копирования Math.random(). Создает криптографически безопасные случайные байты из источника энтропии ОС.
  • Различные форматы вывода — Шестнадцатеричный (в нижнем регистре), Base64 (стандартный), Base64url (безопасный для URL, без заполнения) и десятичный массив байтов. Каждый формат подходит для разных случаев использования.
  • Настраиваемая длина в байтах — Предустановленные длины (8, 16, 24, 32, 64 байта) или пользовательская. Отображение энтропии показывает биты случайности (байты × 8).
  • Массовое создание — Генерируйте до 100 одноразовых номеров одновременно, каждый с отдельной кнопкой копирования.
  • Примеры использования — Предварительно отформатированные фрагменты кода с автоматическим заполнением вашим одноразовым номером: CSP-заголовок, атрибут nonce тега скрипта HTML, параметр состояния OAuth, скрытое поле CSRF и файл cookie сеанса.
  • Отображение энтропии — Показывает биты энтропии для настроенной длины в байтах, чтобы вы могли убедиться, что ваш одноразовый номер соответствует требованиям безопасности.
  • Клиентская сторона 100% — Ничто не покидает ваш браузер. Нет серверных запросов, нет журналов. Ваши одноразовые номера остаются конфиденциальными.

Что такое одноразовый номер (nonce)?

Одноразовый номер (nonce) — это случайное значение, которое должно использоваться только один раз. В криптографии и веб-безопасности одноразовые номера предотвращают атаки повторного воспроизведения, межсайтовый скриптинг (XSS) и подделку запросов. Ключевое требование — непредсказуемость: злоумышленник не должен иметь возможности угадать значение одноразового номера, поэтому необходима криптографическая случайность (а не псевдослучайность).

Реклама · УДАЛИТЬ?

Какова разница между одноразовым номером и случайным токеном?

Одноразовый номер — это конкретно «число, используемое один раз» — оно должно быть уникальным для каждого использования и никогда не должно повторно использоваться. Случайный токен — это более общий термин для любого случайного значения, используемого для аутентификации или идентификации. На практике криптографические одноразовые номера являются случайными токенами с дополнительным ограничением однократного использования. Одноразовые номера CSP должны регенерироваться при каждой загрузке страницы. Параметры состояния OAuth должны быть уникальными для каждого запроса авторизации. CSRF-токены должны быть уникальными для каждого сеанса или каждого запроса. Метод генерации одинаков (криптографическая случайность), но модель использования отличается.

Почему бы не использовать Math.random() для одноразовых номеров?

Math.random() использует генератор псевдослучайных чисел (PRNG), который НЕ является криптографически безопасным. Его вывод детерминирован — если злоумышленник знает внутреннее состояние, он может предсказать будущие значения. Современные браузеры используют xorshift128+ или аналогичные алгоритмы для Math.random(), которые быстры, но предсказуемы. crypto.getRandomValues() использует криптографический генератор случайных чисел операционной системы (CSPRNG), который получает энтропию из аппаратных событий, делая его вывод непредсказуемым даже для злоумышленника, знающего алгоритм. Для любого значения, чувствительного к безопасности, всегда используйте crypto.getRandomValues().

Сколько байтов должен быть мой одноразовый номер?

Это зависит от конкретного случая использования. Для одноразовых номеров CSP рекомендуется минимум 16 байт (128 бит) — достаточно для предотвращения перебора. Для параметров состояния OAuth стандартным является 16-32 байта. Для CSRF-токенов — минимум 16 байт. Для идентификаторов сеанса 32 байта (256 бит) обеспечивают очень комфортный запас безопасности. Общее правило: 128 бит (16 байт) энтропии считаются вычислительно невозможными для подбора с использованием текущих технологий. 256 бит обеспечивают защиту от теоретических атак квантовых вычислений.

Что такое Base64url и когда его следует использовать?

Base64url — это безопасный для URL вариант кодировки Base64. Стандартный Base64 использует символы + и /, которые имеют специальное значение в URL и могут вызывать проблемы в параметрах запроса, файлах cookie и именах файлов. Base64url заменяет + на – и / на _, а также опускает заполнение =. Используйте Base64url для параметров состояния OAuth, значений URL-запросов, JWT-токенов, значений файлов cookie и любого контекста, где одноразовый номер будет отображаться в URL или заголовке HTTP. Используйте стандартный Base64 для одноразовых номеров CSP (спецификация ожидает стандартный Base64) и контекстов, где безопасность URL не является проблемой.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?