Генератор 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 для намеренного тестирования повреждённых или неподписанных токенов, с заметным предупреждением. Ни в коем случае не принимайте такие токены в производственном коде.

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

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

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

Генератор CSR

Создайте запрос на подпись сертификата в формате PEM и соответствующий закрытый ключ RSA. Укажите общее имя, поля организации и размер ключа (2048, 3072 или 4096 бит).

Кодировщик файлов Base64

Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.

Кодировщик шифра A1Z26

Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.

Кодировщик и декодировщик Base58

Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.

Проверка контрольной суммы

Вычислите контрольную сумму (MD5, SHA-1, SHA-256, SHA-384, SHA-512 или CRC32) любого текста и сверьте её с ожидаемым значением, чтобы получить однозначный ответ о совпадении или расхождении.

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