Декодер JWT
Вставьте JSON Web Token ниже, чтобы увидеть его заголовок и payload, декодированные в читаемый JSON. Этот инструмент только декодирует структуру токена — он не проверяет, действительна ли подпись, и текст токена никогда не покидает ваш браузер.
Подпись НЕ проверяется
Этот инструмент только декодирует заголовок и payload как JSON — он НЕ проверяет подлинность подписи, поэтому НЕ может сказать вам, настоящий ли токен. Токен НИКОГДА не отправляется на наш сервер или куда-либо ещё: всё декодирование происходит локально, в вашем браузере, на JavaScript. Payload JWT может содержать чувствительные данные, поэтому относитесь к любому вставленному сюда (или куда угодно) токену так же, как к паролю.
Заголовок
Payload
Скопировано!
Подпись (сырая, не декодирована)
Это сырой сегмент подписи в Base64URL, показанный как есть — это двоичные данные, а не JSON, и этот инструмент никогда не пытается проверить их по какому-либо ключу.
Декодер JWT
JSON Web Token (JWT, RFC 7519) — это три сегмента, закодированных в Base64URL и соединённых точками: header.payload.signature. Заголовок — небольшой JSON-объект, называющий алгоритм подписи («alg», например «HS256» или «RS256») и тип токена («typ»: «JWT»). Payload — JSON-объект с «claims» — произвольными данными, которые эмитент хочет передать, плюс несколько зарегистрированных имён claim с общепринятым значением: «sub» (subject, обычно ID пользователя), «iss» (issuer, эмитент), «aud» (audience, аудитория), «exp» (expiration, Unix-время, после которого токен следует отклонять), «iat» (issued-at, время выпуска) и «nbf» (not valid before). Подпись — это криптографический MAC или цифровая подпись над заголовком и payload, вычисленная секретным или закрытым ключом, который есть только у эмитента.
Декодирование — это не то же самое, что проверка.Декодирование — то, что делает этот инструмент — просто обращает кодирование Base64URL и разбирает получившиеся байты как JSON; оно не требует ключа и ничего не доказывает о подлинности. Проверка сверяет подпись с реальным секретным или публичным ключом эмитента — это единственный способ узнать, что токен не был подделан или изменён. Поскольку заголовок и payload JWT только закодированы, а не зашифрованы, ЛЮБОЙ, у кого есть текст токена — включая этот инструмент, расширение браузера или вредоносный сайт, куда вы его вставите — может прочитать каждый claim внутри в открытом виде. Именно поэтому существует предупреждение над этим инструментом: JWT — это не контейнер секретов, и декодирование здесь ничего не доказывает о том, стоит ли ему доверять.
Разработчики чаще всего обращаются к такому декодеру при отладке: проверяя, действительно ли прошёл срок claim «exp» (очень частая причина непонятных ошибок 401), уточняя, какие значения «aud»/«iss» выдаёт провайдер OAuth или OpenID Connect, или просто изучая, какие claims несёт токен стороннего API перед написанием кода под него. Ничто из этого не требует обращения к подписи вообще — на большинство таких вопросов отвечает уже сама структура.
Сегменты header и payload используют Base64URL, а не стандартный Base64 (RFC 4648 §5: «-»/«_» вместо «+»/«/», без дополнения) — эту деталь инструмент обрабатывает за вас автоматически. Если сегмент не удаётся декодировать, обычно это из-за того, что во вставленном тексте отсутствует сегмент (у корректного JWT всегда ровно три части через точку), он был обрезан при копировании, или это вообще не JWT.
Глоссарий
- JWT
- JSON Web Token (RFC 7519) — компактный, безопасный для URL формат токена, кодирующий JSON-payload с claims, подписанный для доказательства отсутствия изменений.
- Claim
- Отдельный элемент данных в payload JWT — либо зарегистрированное имя с общепринятым значением (sub, exp, iat), либо произвольное поле, определённое приложением.
- exp / iat
- Зарегистрированные claims с Unix-временем: «exp» — когда токен истекает и должен быть отклонён; «iat» — когда он был выпущен.
- Подпись
- Криптографический MAC или цифровая подпись над заголовком и payload, вычисленная ключом, который есть только у эмитента — та часть, которую этот инструмент намеренно никогда не проверяет.
- alg
- Поле заголовка, называющее алгоритм подписи, например «HS256» (HMAC-SHA256, общий секрет) или «RS256» (RSA, пара публичный/закрытый ключ).
- Base64URL
- Безопасный для URL вариант Base64 (RFC 4648 §5), которым закодированы сегменты JWT — «-»/«_» вместо «+»/«/», без дополнения.
API-эквивалент
У этого инструмента нет API-эквивалента в нашем сервисе — декодирование JWT не является фактом об IP-адресе, поэтому нашему API здесь нечего возвращать. Декодирование выше выполняется полностью на вашем устройстве; ваш токен никуда не отправляется. Если вы искали наш API для поиска по IP — он покрывает геолокацию, ASN/сеть и данные об угрозах/мошенничестве для IP-адреса:
Часто задаваемые вопросы
- Проверяет ли этот инструмент подпись JWT?
- Нет. Он только декодирует заголовок и payload как JSON — никогда не проверяет действительность подписи, поэтому не может сказать, настоящий ли токен. Проверка подписи требует секретного или публичного ключа эмитента, который этот инструмент никогда не запрашивает и не имеет.
- Отправляется ли мой токен на ваш сервер?
- Нет — всё декодирование происходит локально, на JavaScript вашего браузера. Эта страница никогда не делает сетевого запроса со вставленным вами токеном.
- Почему при декодировании моего токена появляется ошибка?
- Корректный JWT — это ровно три сегмента в Base64URL через точку. Самые частые причины — отсутствующий или обрезанный сегмент (часто из-за копирования только части токена), либо вставленный текст просто не является JWT.
- Что означают поля «exp» и «iat»?
- Оба — это Unix-время (секунды с 1970-01-01). «iat» — момент выпуска токена; «exp» — момент истечения, после которого правильно реализованный проверяющий должен начать его отклонять.
- Можно ли использовать это для подделки действительного токена?
- Нет. Изменение декодированного JSON здесь никак не влияет на настоящий токен — подлинность токена целиком определяется его подписью, которую этот инструмент никогда не вычисляет и не проверяет и для которой у него нет доступа к секретному или закрытому ключу.
- В чём разница между JWT и обычным Base64?
- JWT — это конкретная трёхчастная структура (header.payload.signature), использующая Base64URL, безопасный для URL вариант Base64. Обычный Base64 — это просто лежащее в основе кодирование общего назначения — используйте инструмент Base64 для произвольного текста, а этот — специально для структуры JWT.
Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →