Декодер JWT (содержимое, срок действия и подпись)

Вставьте JWT — и прочитайте заголовок и полезную нагрузку, а срок действия увидите в виде даты и времени. С ключом можно проверить и подпись.

JWT

Символов: 0 · строк: 0

Всё обрабатывается на этом устройстве. Введённый текст никуда не отправляется.

JWT нередко работает как ключ для входа в аккаунт. Не вставляйте его на сайтах, которым не доверяете.

Содержимое токена

Здесь появится результат

Пригодилось? Будем рады, если поделитесь

Что-то не работает или есть идея, как сделать лучше?

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

  1. 1. Вставьте JWT

    Нажмите «Вставить» над верхним полем, чтобы вставить скопированный JWT. Приставку «Bearer» и кавычки по краям можно не убирать. Чтобы просто попробовать, нажмите «Пример».

  2. 2. Посмотрите содержимое

    Ниже, в разделе «Содержимое токена», появится метка вроде «Действует» или «Истёк», а под ней — срок действия и время выпуска по часам этого устройства с подписями вроде «через 2 года» или «3 часа назад». Ниже показан JSON заголовка и полезной нагрузки; нажмите «Копировать нагрузку», чтобы скопировать отформатированный JSON.

  3. 3. Проверьте подпись

    В поле «Проверить подпись» в самом низу введите секретный ключ для HS256 и подобных или открытый ключ для RS256, ES256 и т. д. Сразу появится «Подпись верна» или «Подпись не совпадает». Ключ для токена-примера — papatto-sample-secret.

Когда пригодится

  • Понять, почему внезапно слетает авторизация

    Вставьте токен — и увидите срок действия (exp) и время выпуска (iat) по часам этого устройства с подписью вроде «5 минут назад». Если срок истёк, метка сразу это покажет, так что легко заметить сбитые часы или слишком короткий срок.

    Веб-разработчики и служба поддержки

  • Узнать, что лежит в токене

    Пользователь (sub), издатель (iss), получатель (aud) и собственные claims вроде прав доступа — всё в виде отформатированного JSON. Строку с «Bearer», скопированную из инструментов разработчика, можно вставить как есть.

    Те, кто создаёт или тестирует API

  • Проверить, тот ли ключ подписи

    Введите секретный ключ для HS256 или открытый ключ (PEM или JWK) для RS256 и ES256 — и сразу станет ясно, подписан ли токен этим ключом. Помогает найти причину, когда авторизация не проходит из-за неверно настроенных ключей.

    Разработчики, которые занимаются авторизацией

  • Не выпускать настоящие токены за пределы устройства

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

    Те, кто следит за безопасностью

Что стоит знать

  • Содержимое JWT не зашифровано — прочитать его может кто угодно. Не кладите туда пароли и другое, что нельзя показывать.
  • Содержимое зашифрованного JWT (JWE) прочитать нельзя. Доступен только заголовок.
  • Открытые ключи не загружаются автоматически (по URL JWKS). Вставьте ключ сами (эта страница ни к чему не подключается).

О JWT

JWT (JSON Web Token) — это строка из 3 частей «заголовок.нагрузка.подпись», в которой записаны данные и права вошедшего пользователя. Заголовок и полезная нагрузка — это просто JSON в URL-safe виде {tool:base64}, поэтому раскодировать и прочитать их может кто угодно. От подделки защищает только подпись в конце.

Эта программа показывает exp (срок действия), nbf (действует с) и iat (время выпуска) из полезной нагрузки как дату и время в часовом поясе этого устройства с подписями вроде «через 3 часа», а если срок истёк, предупреждает меткой. Даты в виде числа можно перевести и в {tool:unix-time}. Если ввести ключ, программа прямо в браузере проверит, верна ли подпись HS256, RS256, PS256, ES256, EdDSA и других.

3 части JWT
Что внутриМожно ли прочитать
ЗаголовокСпособ подписи (alg), тип (typ), ID ключа (kid)Может кто угодно
Полезная нагрузкаClaims: пользователь (sub), срок действия (exp), права и т. д.Может кто угодно
ПодписьЗначение, вычисленное ключом из заголовка и нагрузкиБез ключа не проверить

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

Ответы на вопросы, которые часто возникают перед началом работы.

Отправляется ли куда-нибудь вставленный JWT?

Нет. И чтение, и проверка подписи выполняются только в браузере на вашем устройстве — ни JWT, ни ключ не отправляются на сервер. JWT нередко работает как ключ для входа в аккаунт, поэтому не вставляйте его на сайтах, о которых ничего не знаете.

Как понять срок действия (exp)?

Метка над разделом «Содержимое токена» показывает «Действует», «Истёк», «Ещё не действует» или «Бессрочный». В списке ниже дата окончания срока указана в часовом поясе этого устройства, а рядом — сколько осталось или прошло, например «через 3 часа» или «2 дня назад».

Можно ли проверить подпись?

Да. Для HS256, HS384 и HS512 введите секретный ключ (текстом или в Base64), для RS256, PS256, ES256, EdDSA и других — открытый ключ. Сразу появится «Подпись верна» или «Подпись не совпадает».

Какие форматы открытого ключа поддерживаются?

PEM, начинающийся с «-----BEGIN PUBLIC KEY-----», «-----BEGIN RSA PUBLIC KEY-----», сертификаты (-----BEGIN CERTIFICATE-----), JWK и JWK Set ({"keys": […]}). Из JWK Set выбирается ключ с тем же kid, что и в заголовке.

Можно ли вставить токен вместе с «Bearer»?

Да. Строка «Authorization: Bearer», пробелы, переносы строк и кавычки по краям убираются автоматически.

Появилось «JWT без подписи (alg: none)»

Это токен без подписи — его содержимое может изменить кто угодно. Если это не тестовый токен, проверьте настройки сервера. Сервер, который использует JWT для входа и подобных задач, не должен принимать токены с alg none.

Появилось «Зашифрованный JWT (JWE)»

JWT из 5 частей, разделённых «.», — это JWE с зашифрованным содержимым. Без закрытого ключа получателя его не прочитать, поэтому программа показывает только заголовок (способ шифрования и т. д.).

Появляется «Не удаётся прочитать как JWT»

При копировании потерялась часть токена, или в нём есть символы, которые не используются в JWT. Программа сообщает, какую часть не удалось прочитать, и отмечает это место в поле оранжевым — проверьте его.

Содержимое JWT зашифровано?

Нет. Заголовок и полезная нагрузка просто переведены в символы по фиксированной таблице (base64url), поэтому прочитать их может кто угодно. Не кладите туда пароли и личные данные.

Это бесплатно?

Да, бесплатно. Без регистрации и без рекламы.