Перейти к контенту
SPCXTools

Декодер JWT

Декодируйте JSON Web Tokens, проверяйте срок действия и подписи HMAC — безопасно, прямо в вашем браузере.

Работает локально — файлы не покидают ваше устройство

Загрузка инструмента…

Как использовать Декодер JWT

  1. 1Вставьте JWT (три части Base64URL, разделенные точками) в поле Токен или нажмите Загрузить пример.
  2. 2Просматривайте декодированные Заголовок и Полезную нагрузку в виде отформатированного JSON.
  3. 3Проверьте строку статуса, чтобы узнать, действителен ли токен, истек ли его срок действия или он еще не активен; временные метки отображаются в виде читаемых дат.
  4. 4Для токенов HS256, HS384 или HS512 введите секретный ключ, чтобы проверить подпись локально.

Декодирование JSON Web Tokens

JSON Web Token (JWT) — это компактная строка, используемая для передачи информации об аутентификации и правах доступа между системами. Чаще всего она передается в заголовке Authorization: Bearer после входа в систему. Токен выглядит как случайный набор символов, но на самом деле состоит из трех частей, закодированных в формате Base64URL: заголовка, полезной нагрузки и подписи. Этот декодер JWT разделяет токен, декодирует первые две части в читаемый формат JSON и объясняет значения важных полей. Декодирование и проверка происходят локально, поэтому ваш токен никуда не передается.

Возможности

  • Заголовок и полезная нагрузка декодируются и выводятся в отформатированном виде, для каждой части есть кнопка копирования.
  • Расшифровка временных меток: поля iat, nbf, exp и auth_time конвертируются из секунд Unix-времени в даты вашего часового пояса.
  • Проверка срока действия, которая сразу показывает, истек ли срок действия токена или он еще не активен.
  • Проверка подписи HMAC для алгоритмов HS256, HS384 и HS512 с использованием Web Crypto API вашего браузера.
  • Работает офлайн после загрузки страницы; никакие данные никуда не отправляются.

Когда это может понадобиться

Отладка аутентификации. Если запрос завершается ошибкой 401 Unauthorized, декодируйте токен, чтобы проверить, не истек ли его срок действия, выдан ли он для нужной аудитории (aud) и содержит ли ожидаемые роли и права доступа (scopes).

Разработка и тестирование API. Перед релизом убедитесь, что ваш сервер помещает в токен нужные данные и устанавливает правильное время истечения срока действия.

Изучение работы OAuth и OpenID Connect. ID-токены и токены доступа (access tokens) от провайдеров аутентификации часто представляют собой JWT. Декодирование тестового токена покажет, какой информацией о пользователе делится провайдер.

Структура JWT

header.payload.signature

  • Заголовок — тип токена и алгоритм подписи, например {"alg":"HS256","typ":"JWT"}.
  • Полезная нагрузка — утверждения (claims). Стандартные утверждения включают iss (издатель), sub (субъект, обычно ID пользователя), aud (аудитория), exp, nbf, iat и jti (ID токена). Приложения могут добавлять собственные утверждения, такие как name или role.
  • Подпись — создается путем подписания header.payload с помощью секрета (HMAC) или закрытого ключа (RSA, ECDSA, EdDSA). Если изменить хотя бы один символ заголовка или полезной нагрузки, подпись станет недействительной.

Поскольку полезная нагрузка только кодируется, никогда не храните в JWT секретные данные, например пароли. Для декодирования других данных Base64 используйте декодер Base64; для работы с временными метками используйте конвертер Unix-времени.

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

Безопасно ли вставлять сюда настоящий токен?
Токен декодируется и проверяется исключительно в вашем браузере и никуда не отправляется. Тем не менее, JWT — это секретные данные. Относитесь к нему как к паролю, не делитесь токенами из продакшена и по возможности используйте тестовые.
Доказывает ли декодирование JWT его подлинность?
Нет. Любой может декодировать заголовок и полезную нагрузку, так как они лишь закодированы в Base64URL, а не зашифрованы. Токен надежен, только если его подпись проверена правильным ключом. Токены HMAC можно проверить прямо здесь, введя секретный ключ; токены RSA и ECDSA должны проверяться публичным ключом издателя на стороне вашего приложения.
Что означают exp, iat и nbf?
exp (срок действия) — время, когда токен перестает быть валидным, iat (время выдачи) — когда он был создан, а nbf (не ранее) — самое раннее время, когда его можно использовать. Все три значения представляют собой Unix-время в секундах; декодер преобразует их в даты вашего часового пояса.
Почему пишет, что токен невалидный?
JWT должен состоять ровно из трех частей, разделенных точками, а первые две должны быть JSON-строками в кодировке Base64URL. Убедитесь, что вы скопировали токен целиком, без префикса Bearer , кавычек и переносов строк.
Можно ли здесь декодировать зашифрованные токены (JWE)?
Нет. Зашифрованные JWT состоят из пяти частей, и их полезную нагрузку можно прочитать только с помощью ключа расшифрования. Этот инструмент работает с подписанными токенами (JWS) — именно они используются в большинстве API.