Декодирование лишь показывает содержимое: токен проверен, только когда подпись проверена правильным ключом.

Этот JWT-декодер разбирает JSON Web Token на заголовок, полезную нагрузку и подпись и показывает claims в виде читаемого JSON, а exp, iat и nbf переводит в местное время. Он также проверяет подписи HS, RS, PS и ES и подписывает новые токены HS256. Всё работает в браузере через Web Crypto API.

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

  1. Вставьте JWT. Заголовок, payload и подпись подсвечиваются и декодируются при вставке.
  2. Изучите утверждения: exp, iat и nbf показаны в вашем местном времени — «через 3 часа» или «2 дня назад».
  3. Чтобы проверить подпись, введите секрет (HS256/384/512) или вставьте открытый ключ в PEM, сертификат X.509 или JWK (алгоритмы RS, PS и ES).
  4. Нажмите на заголовок или payload, чтобы скопировать их как отформатированный JSON.
  5. На вкладке «Создать» можно подписать новый токен HS256/384/512 своим payload и секретом.
  • Данные не покидают браузер: расшифровка и проверка выполняются встроенным Web Crypto API, токены и ключи не сохраняются и не отправляются.
  • Любой может прочитать JWT: payload лишь закодирован в Base64URL, а не зашифрован. Не храните в нём секреты.
  • У токена с alg «none» нет подписи. Серверы обязаны его отклонять.
  • Поддерживаются HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384 и ES512. Подходит и JWKS ({"keys": […]}) — ключ выбирается по kid.
  • Включите «Секрет в Base64», если секрет хранится в кодировке Base64, как у некоторых провайдеров.

Как устроен JWT

JWT (RFC 7519) — это три строки Base64URL, соединённые точками: заголовок.payload.подпись. В заголовке указан алгоритм, например {"alg":"HS256","typ":"JWT"}. В payload лежат claims: sub (субъект), iss (издатель), aud (получатель), exp (срок действия), iat (время выпуска) и nbf (не раньше). Время записывается в секундах с 1 января 1970 года UTC: exp 1767225600 — это 1 января 2026 года, 00:00 UTC.

Подпись вычисляется по первым двум частям. В HS256 это HMAC-SHA256 с общим секретом, в RS256 и PS256 — подпись RSA, в ES256 — подпись ECDSA на кривой P-256 (RFC 7518).

Декодировать не значит проверить

Прочитать JWT может любой: Base64URL — это кодирование, а не шифрование, поэтому пароли и персональные данные в payload класть нельзя. Доверять токену можно только после того, как подпись сошлась с правильным ключом, а exp и nbf в допустимых пределах. Токен с alg none вообще не подписан, и сервер обязан его отклонить. Для HS256 секрет должен быть не короче 32 случайных байт.

Какие ключи подходят

Для HS256, HS384 и HS512 введите общий секрет — текстом или в Base64. Для RS, PS и ES вставьте открытый ключ в формате PEM, сертификат X.509, JWK или целый JWKS; из JWKS ключ выбирается по kid в заголовке. Токены и ключи не сохраняются и никуда не отправляются.

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

Безопасно ли вставлять сюда JWT?

Да. Токен декодируется и проверяется в вашем браузере и никуда не отправляется. И всё же обращайтесь с боевыми токенами как с паролями и по возможности используйте просроченные или тестовые.

Можно ли декодировать JWT без секрета?

Да. Заголовок и payload лишь закодированы в Base64URL, их может прочитать кто угодно. Секрет или открытый ключ нужны только для проверки подписи.

Что означает claim exp?

exp — момент истечения срока в секундах с 1 января 1970 года UTC. После него токен должен отклоняться. Здесь он показан в вашем местном времени с пометкой вроде «истёк 2 дня назад».

Чем HS256 отличается от RS256?

HS256 подписывает одним общим секретом, который знают и издатель, и проверяющий. RS256 подписывает закрытым ключом RSA, а проверяется открытым, так что у проверяющей стороны нет ключа подписи.

Почему не проходит проверка подписи?

Чаще всего секрет неверный или хранится в Base64, открытый ключ не соответствует kid или токен изменили после подписи. Включите «Секрет в Base64», если провайдер хранит его так.

Можно ли здесь создать JWT?

Да. Вкладка «Создать» подписывает токен алгоритмом HS256, HS384 или HS512 из вашего payload и секрета. Подписи RSA и EC нет, потому что для них нужен закрытый ключ.

Часто используют вместе

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

Шаги

  1. Вставьте JWT. Заголовок, payload и подпись подсвечиваются и декодируются при вставке.
  2. Изучите утверждения: exp, iat и nbf показаны в вашем местном времени — «через 3 часа» или «2 дня назад».
  3. Чтобы проверить подпись, введите секрет (HS256/384/512) или вставьте открытый ключ в PEM, сертификат X.509 или JWK (алгоритмы RS, PS и ES).
  4. Нажмите на заголовок или payload, чтобы скопировать их как отформатированный JSON.
  5. На вкладке «Создать» можно подписать новый токен HS256/384/512 своим payload и секретом.

Горячие клавиши

Ctrl + EnterСкопировать payload (декодирование) или токен (создание)

Полезно знать

Работает в браузере. Файлы и текст не покидают ваше устройство.