Декодер JWT (содержимое, срок действия и подпись)
Вставьте JWT — и прочитайте заголовок и полезную нагрузку, а срок действия увидите в виде даты и времени. С ключом можно проверить и подпись.
JWT
Символов: 0 · строк: 0
Всё обрабатывается на этом устройстве. Введённый текст никуда не отправляется.
JWT нередко работает как ключ для входа в аккаунт. Не вставляйте его на сайтах, которым не доверяете.
Содержимое токена
Здесь появится результат
Пригодилось? Будем рады, если поделитесь
Что-то не работает или есть идея, как сделать лучше?
Как пользоваться
1. Вставьте JWT
Нажмите «Вставить» над верхним полем, чтобы вставить скопированный JWT. Приставку «Bearer» и кавычки по краям можно не убирать. Чтобы просто попробовать, нажмите «Пример».
Нажмите «Вставить» над левым полем, чтобы вставить скопированный JWT. Приставку «Bearer» и кавычки по краям можно не убирать. Чтобы просто попробовать, нажмите «Вставить пример».
2. Посмотрите содержимое
Ниже, в разделе «Содержимое токена», появится метка вроде «Действует» или «Истёк», а под ней — срок действия и время выпуска по часам этого устройства с подписями вроде «через 2 года» или «3 часа назад». Ниже показан JSON заголовка и полезной нагрузки; нажмите «Копировать нагрузку», чтобы скопировать отформатированный JSON.
Над правым полем появится метка вроде «Действует» или «Истёк», а под ней — срок действия и время выпуска по часам этого устройства с подписями вроде «через 2 года» или «3 часа назад». Ниже показан JSON заголовка и полезной нагрузки; нажмите «Копировать нагрузку», чтобы скопировать отформатированный JSON.
3. Проверьте подпись
В поле «Проверить подпись» в самом низу введите секретный ключ для HS256 и подобных или открытый ключ для RS256, ES256 и т. д. Сразу появится «Подпись верна» или «Подпись не совпадает». Ключ для токена-примера — papatto-sample-secret.
В поле «Проверить подпись» слева внизу введите секретный ключ для 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 и других.
Частые вопросы
Ответы на вопросы, которые часто возникают перед началом работы.
Отправляется ли куда-нибудь вставленный 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), поэтому прочитать их может кто угодно. Не кладите туда пароли и личные данные.
Это бесплатно?
Да, бесплатно. Без регистрации и без рекламы.
Другие инструменты
- Полная и половинная ширина
Переводит буквы, цифры и катакану между полной и половинной шириной.
- Конвертер хирагана ⇔ катакана
Преобразует хирагану, катакану и полуширинную катакану разом. Кандзи, латиница и цифры остаются без изменений.
- Счётчик символов для соцсетей (X, Instagram, YouTube)
Показывает, сколько символов осталось до лимита в X, Instagram, YouTube и других соцсетях, по правилам каждой из них. А ещё слова и строки.
- Форматирование JSON
Делает JSON удобным для чтения или сжимает его в одну строку. Если есть ошибка, показывает, где она.
- Кодирование и декодирование URL
Переводит кириллицу, пробелы и символы в формат URL (например, %D0%BF) или возвращает исходный текст.
- Генератор паролей
Выберите длину и символы — и сразу получите пароли, которые трудно подобрать.