# Генератор Nonce и токенов

Генерирует криптографически стойкие одноразовые токены для веб-безопасности — CSRF-токены, параметры state OAuth/OIDC, сессионные nonce и PKCE code_verifier/code_challenge (S256). Использует crypto.randomBytes, а не Math.random.

> Каноническая страница: https://elysiatools.com/ru/tools/nonce-generator

- **Категория:** Security

- **Ключевые слова:** nonce, CSRF, OAuth, state, PKCE, токен, сессия, безопасность

## Обзор

Этот инструмент генерирует **одноразовые высокоэнтропийные токены** для конкретных сценариев веб-безопасности. В отличие от универсального генератора случайных строк, каждый сценарий автоматически применяет нужные соглашения.

Сценарии:
- **CSRF-токен**: непрозрачный токен, привязанный к сессии пользователя и отправляемый с запросами, меняющими состояние (формы, AJAX), чтобы доказать, что запрос пришёл с вашей страницы.
- **OAuth/OIDC State**: непредсказуемое значение, отправляемое на сервер авторизации и проверяемое в колбэке редиректа, привязывающее ответ к этому запросу и предотвращающее login CSRF.
- **Сессионный Nonce**: одноразовое случайное значение, привязанное к сессии для предотвращения повтора запроса.
- **PKCE Verifier + Challenge**: генерирует `code_verifier` (хранится на клиенте) и выводит `code_challenge = base64url(SHA256(verifier))` (отправляется на сервер авторизации) по RFC 7636, так что утёкший код авторизации нельзя обменять без verifier. PKCE принудительно использует кодировку base64url и длину verifier 32-96 байт (43-128 символов base64url).
- **Своё**: универсальный непрозрачный высокоэнтропийный токен для любого одноразового сценария; длина в байтах задаётся пользователем (8-128).

Параметры:
- **Длина в байтах**: байты энтропии. Зафиксирована на 32 (256 бит) для всех предустановленных сценариев; редактируется (8-128) только в режиме «Своё».
- **Кодировка**: base64url (URL-безопасная, по умолчанию для веб-токенов), hex или base64. Для PKCE принудительно base64url.
- **Добавить префикс времени истечения**: добавляет `base36(секИстечения).токен`, чтобы сервер мог отвергать просроченные токены без сохранения состояния (паттерн OWASP).
- **TTL (секунды)**: окно действия, используемое префиксом времени.
- **Количество**: генерировать 1-50 токенов за раз.

Безопасность: случайность даёт `crypto.randomBytes()` Node — никогда `Math.random()`. PKCE challenge использует SHA-256 через `crypto.createHash()`. Инструмент только генерирует материал токена; он не хранит и не проверяет токены на сервере.

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

- **Сценарий** (select)
- **Длина в байтах** (number): e.g. 32
- **Кодировка** (select)
- **Добавить префикс времени истечения** (checkbox)
- **TTL (секунды)** (number): e.g. 300
- **Количество** (number): e.g. 1

## Когда использовать

- При интеграции авторизации OAuth 2.0 или OpenID Connect для защиты от атак типа Login CSRF с помощью параметров state.
- Для защиты веб-форм и API-эндпоинтов от межсайтовой подделки запросов (CSRF) с помощью криптографически стойких токенов.
- При настройке авторизации в мобильных или одностраничных приложениях (SPA) с использованием механизма PKCE для безопасного обмена кодов.

## Как это работает

- Выберите необходимый сценарий безопасности, например, CSRF-токен, OAuth state или PKCE Verifier + Challenge.
- Настройте параметры генерации: укажите длину в байтах (для режима «Своё»), выберите кодировку (base64url, hex или base64) и при необходимости включите префикс времени истечения.
- Инструмент использует системный криптографический генератор случайных чисел Node.js для создания высокоэнтропийных токенов.
- Скопируйте полученные значения для использования в конфигурации вашего сервера или клиента.

## Сценарии использования

- Генерация безопасных CSRF-токенов с ограничением по времени жизни (TTL) для защиты форм регистрации и оплаты.
- Создание уникальных сессионных nonce-значений для заголовков Content Security Policy (CSP) с целью предотвращения XSS-атак.
- Быстрое получение тестовых пар code_verifier и code_challenge при отладке интеграции с провайдерами авторизации.

## Частые вопросы

### Безопасно ли использовать этот генератор для продакшена?

Да, инструмент использует криптографически стойкую функцию crypto.randomBytes, обеспечивающую высокую энтропию, в отличие от небезопасного Math.random.

### Что такое PKCE Verifier и Challenge?

Это пара значений для защиты OAuth-авторизации: клиент хранит секретный verifier, а серверу отправляет challenge (хэш SHA-256 в кодировке base64url).

### Зачем нужен префикс времени истечения (TTL)?

Он добавляет метку времени к токену, позволяя серверу проверять срок его действия без сохранения состояния в базе данных.

### Почему для PKCE заблокирован выбор кодировки?

Спецификация RFC 7636 строго требует использования кодировки base64url для параметров code_verifier и code_challenge.

### Сохраняются ли сгенерированные токены на сервере?

Нет, генерация происходит на стороне сервера в памяти в момент запроса, инструмент не сохраняет и не логирует созданные токены.

## Связанные инструменты

- [Генератор меток синхронного чтения](https://elysiatools.com/ru/tools/audio-read-along-cue-generator): Создаёт метки на уровне предложений или слов с таймстампами из аудио закадровки и сценария.
- [Современный генератор уникальных ID](https://elysiatools.com/ru/tools/uid-generator): Генерирует современные идентификаторы: ULID, NanoID, Snowflake и CUID2. Сравнивайте форматы, декодируйте временную метку ULID.
- [Инструкция Безопасной Передачи AGEX](https://elysiatools.com/ru/tools/agex-secure-share-note): Создает понятную инструкцию для получателя AGEX-пакета: как безопасно расшифровать и проверить его
- [Генератор цифровой подписи](https://elysiatools.com/ru/tools/digital-signature-generator): Подписывает сообщение приватным ключом или проверяет подпись публичным — поддерживает RSA-PSS (SHA-256), ECDSA (P-256) и Ed25519. Чисто локальная криптография (Node crypto.createSign/createVerify), без сети. Вставьте PEM-ключ для подписи или проверки base64-подписи. Инструмент только подписывает/проверяет; он не генерирует пары ключей.
- [Генератор и верификатор HMAC](https://elysiatools.com/ru/tools/hmac-generator-verifier): Вычисляет HMAC-подпись сообщения + общего секрета на SHA-1/SHA-2/SHA-3/BLAKE2 или проверяет входящую подпись (сравнение за постоянное время) с пресетами Stripe / Slack / GitHub
- [Генератор и анализатор JWK](https://elysiatools.com/ru/tools/jwk-generator): Генерирует JSON Web Keys (JWK) для RSA, EC (P-256/P-384/P-521/secp256k1) и OKP (Ed25519/Ed448/X25519/X448), либо разбирает существующий JWK для просмотра параметров, отпечатка и метаданных
- [Генератор цифровых OTP](https://elysiatools.com/ru/tools/otp-generator): Генерирует криптографически стойкие одноразовые цифровые коды (SMS / email-подтверждение, коды розыгрыша, PIN мероприятий) с настраиваемой длиной (3-10 цифр), массовым выводом, опциональным исключением неоднозначных цифр и обратным отсчётом истечения. Использует crypto.randomInt, а не Math.random.
- [Генератор PKCE Code Verifier и Challenge](https://elysiatools.com/ru/tools/pkce-code-verifier-generator): Создание, проверка и верификация пар code_verifier / code_challenge PKCE (RFC 7636) для OAuth2 / OIDC. Три режима: (1) создать новую пару из криптостойких случайных байт (256/384/512/768 бит), (2) аудит имеющегося verifier по RFC — длина (43–128), набор \[A-Za-z0-9-._~\] и ≥256 бит энтропии, (3) проверить пару, пересчитав BASE64URL(SHA256(verifier)). При желании строит полный URL запроса авторизации и тело обмена токена. Дополняет универсальный nonce-generator (только выдаёт пару) аудитом соответствия RFC и проверкой пар.

## Примеры

- [Примеры Обработки Изображений Android Java](https://elysiatools.com/ru/samples/android-image-processing-java): Примеры обработки изображений Android Java включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Android Kotlin](https://elysiatools.com/ru/samples/android-image-processing-kotlin): Примеры обработки изображений Android Kotlin включая чтение/сохранение, масштабирование и преобразование формата
- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [Примеры Обработки Изображений Web Rust](https://elysiatools.com/ru/samples/web-image-processing-rust): Примеры обработки изображений Web Rust включая чтение/запись, масштабирование и преобразование форматов

## Связанные материалы

- [Инструменты для токенов, сессий и 2FA](https://elysiatools.com/ru/hubs/token-session-and-2fa-workflows): Отлаживайте реальные сценарии входа с генераторами PKCE и nonce, разбором JWT и JWK, проверкой HMAC, тестами OTP и TOTP и удобными для auth идентификаторами в одном сфокусированном hub.
- [Генераторы JSON-схем, mock-данных и API-fixture](https://elysiatools.com/ru/hubs/json-generate): Подборка инструментов для генерации JSON-схем, сборки mock-payload и подготовки API-fixture в одном хабе.
- [Генераторы CSS-эффектов, палитр и дизайн-токенов](https://elysiatools.com/ru/hubs/design-generate): Подборка инструментов для CSS-визуальных эффектов, построения палитр и генерации дизайн-токенов в одном хабе.
- [Генераторы печатных PDF-макетов и шаблонов](https://elysiatools.com/ru/hubs/pdf-generate): Подборка инструментов для создания печатных PDF-макетов и переиспользуемых шаблонов документов в одном хабе.
