Генератор JWT

Сгенерировать JWT

Создайте и подпишите JWT-токен непосредственно в браузере: введите требования к содержанию токена (стандартные sub, aud, exp и т.д., а также любые пользовательские значения), выберите алгоритм, HS256 с общим секретом или RS256/ES256 с частным ключом, и инструмент автоматически генерирует трёхкомпонентный токен. Это особенно полезно для локальной разработки, тестирования нагрузки и воспроизведения проблем с аутентификацией.

Как создать JWT

  1. 1

    Напишите полезный контент.

    Стандартные запросы (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) плюс любые пользовательские запросы, которые ожидает ваше приложение.

  2. 2

    Выберите алгоритм

    HS256/384/512 с общим секретом или RS256/ES256 с частным ключом в формате PEM.

  3. 3

    Укажите ключ

    Введите общедоступный секретный текст для HMAC или вставьте частный ключ для RSA/ECDSA, оба значения сохраняются в вашем браузере.

  4. 4

    Генерировать

    Результат, это подписанный токен. Копируйте его, используйте в тестах и декодируйте с помощью JWT-декодера для проверки.

Типичный набор данных для токена аутентифицированного пользователя

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "user_12345",
  "iat": 1713398400,
  "nbf": 1713398400,
  "exp": 1713402000,
  "jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
  "scope": "read:profile write:posts"
}

Выбор алгоритма: HMAC против асимметричных алгоритмов

Алгоритм Тип ключа Применяется при
HS256 256-битный общедоступный секрет Монолит, способный сам подписываться и проверять свою подлинность
HS384/512 Более длинный секретный код Тот же, что и у HS256, но более надёжный
RS256 RSA 2048+ Подпись эмитента; многие сервисы используют публичный ключ для проверки
ES256 ECDSA P-256 Тот же алгоритм, что и RS256, но с более мелкими подписями
EdDSA Ed25519 Самая быстрая асимметричная проверка с минимальными ключами

Надёжность ключа

  • Секреты HMAC должны обладать энтропией не меньше размера выходного значения алгоритма. Для HS256 нужно 256 случайных битов (32 байта); меньшее значение поддаётся подбору методом полного перебора.
  • Ключи RSA должны быть не короче 2048 битов; 3072 или 4096 битов для долгоживущих токенов.
  • ECDSA (ES256) обеспечивает безопасность, сопоставимую с RSA 3072, при использовании значительно более малых ключей и более быстрой подписи.

Рекомендации по сроку годности

Тип токена Типичная продолжительность exp
Токен доступа 5–60 минут
Токен обновления От дней до недель
Сброс пароля 5–15 минут
Проверка по электронной почте 24 часа
Служба к службе 1–5 минут (короткое время)

Токен с коротким сроком действия и механизмом обновления представляет собой современный подход; токены доступа с длительным сроком действия трудно аннулировать в случае их взлома.

Распространённые ошибки

  • Повторное использование тестового секрета в продакшене. Генератор помечает секреты HS256 и итоговый JWT как предназначенные только для тестирования, если секрет выглядит слабым. Доверяйте этому предупреждению.
  • Подписание без exp. JWT без срока действия действителен всегда. Всегда устанавливайте exp, если только у вас нет веских причин и списка аннулирования.
  • Использование alg из заголовка на стороне проверки. Всегда задавайте белый список алгоритмов на стороне проверки; не полагайтесь на то, что запрашивает токен.
  • Вставка сюда настоящего частного ключа. Этот генератор работает в вашем браузере, однако считайте частные ключи секретами: используйте тестовые ключи, а не производственные.

Часто задаваемые вопросы

Нет. Подписание выполняется в вашем браузере с помощью Web Crypto API: ключи никогда не покидают ваше устройство. Тем не менее производственные ключи следует генерировать и подписывать в контролируемой среде, а не в браузере.

Стандарт HS256 подходит для монолитных систем, в которых процесс подписания и проверки осуществляется одним и тем же сервисом. Стандарты RS256 или ES256 более подходят в случаях, когда эмитент и проверяющий являются разными сторонами: публичные ключи могут быть обменены без раскрытия ключа подписания.

Коротким. Для токенов доступа обычно 5–15 минут. Для бесперебойной работы используйте токен обновления с более длительным сроком действия. Ни в коем случае не выдавайте JWT без поля exp.

Инструмент позволяет генерировать токены с alg: none для намеренного тестирования повреждённых или неподписанных токенов, с заметным предупреждением. Ни в коем случае не принимайте такие токены в производственном коде.

Сопутствующие инструменты

Шифр из числа в букву

Преобразуйте числа в буквы и обратно по шифру A=1, B=2 (A1Z26) для головоломок, загадок и подсказок в квест-комнатах.

Генератор ключей API случайного типа

Создавайте на сервере ключи API длиной 8–128 символов в формате hex, base64url или алфавитно-цифровом формате либо UUIDv4.

Генератор MD5

Создайте хеш MD5 для любого текста или файла. Результат, 128-битное значение в шестнадцатеричном формате, вычисляемое полностью в вашем браузере.

Инструмент шифрования текста

Шифруйте и расшифровывайте текстовые сообщения с помощью AES, используя пароль, чтобы прочитать их мог только получатель.

Генератор SSL-сертификатов

Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.

Кодировщик шифра Виженера

Шифруйте и дешифруйте сообщения классическим шифром Виженера с помощью ключевого слова. Сдвигает латинские буквы A-Z, сохраняя регистр, пробелы и пунктуацию.

Инструмент доступен на других языках