Декодер JWT
Разбор JWT на заголовок, тело и подпись, срок действия токена и проверка подписи ключом.
Данные обрабатываются в браузере и никуда не отправляются
Здесь появится содержимое токена
Вставьте JWT слева или откройте пример - заголовок, тело и срок действия разберутся сразу
Как пользоваться
Вставьте JWT в левое поле или откройте пример - токен разберётся сразу, без кнопок: заголовок и тело покажутся в виде отформатированного JSON, даты (iat, nbf, exp) - в понятном виде в UTC и по вашему времени, а срок действия обновляется каждую секунду. Префикс Bearer, кавычки и переносы строк внутри токена убираются автоматически.
Чтобы проверить подпись, вставьте ключ: для HS256/384/512 - общий секрет (строкой или JWK с kty: oct), для RS/PS/ES - открытый ключ в формате PEM («-----BEGIN PUBLIC KEY-----») или JWK; закрытый ключ (PKCS#8 или JWK) тоже подойдёт - из него возьмётся открытая часть. Проверка идёт средствами браузера (WebCrypto - встроенная криптография браузера), ключ и токен никуда не отправляются.
Частые ошибки
Вот что чаще всего путают при работе с JWT:
JWT не зашифрован
Заголовок и тело - это просто Base64URL от JSON, прочитать их может кто угодно без ключа. Не кладите в токен пароли, номера карт и другие секреты. Подпись защищает от подделки, но не от чтения.
Декодирование - это не проверка
Разобрать токен может любой, а вот доверять его содержимому можно только после проверки подписи на сервере. Эта страница показывает, что в токене написано, - но не доказывает, что токен настоящий, пока вы не указали ключ.
alg: none
Токен с алгоритмом none не подписан: его содержимое может сочинить кто угодно. Сервер должен принимать только те алгоритмы, которые он ожидает, и никогда не ориентироваться на alg из токена вслепую.
Время в секундах, а не в миллисекундах
exp, nbf и iat - это секунды с 1 января 1970 (UTC). Если библиотека записала миллисекунды (значение вроде 1767225600000), дата получается в далёком будущем, и токен «никогда не истекает». Инструмент предупреждает о таком значении.
Токен «просрочен» из-за часов
Если часы сервера и клиента расходятся, свежий токен может оказаться ещё «не действующим» (nbf, iat) или уже истёкшим. Серверы обычно допускают небольшой разброс - несколько секунд или минут.
Обычный Base64 вместо Base64URL
В JWT используется Base64URL: символы «-» и «_» вместо «+» и «/» и без «=» в конце. Токен, собранный обычным Base64, строгие библиотеки отклонят; инструмент его прочитает, но предупредит.
Секрет и открытый ключ - не одно и то же
HS-алгоритмы подписываются и проверяются одним общим секретом, RS/PS/ES - подписываются закрытым ключом, а проверяются открытым. Подставить открытый ключ вместо секрета HS-токена - классическая атака подмены алгоритма, поэтому инструмент такую проверку не выполняет.
Частые вопросы
Отправляется ли мой токен или ключ на сервер?
Нет - 100%. Сайт целиком статический, у него нет серверной части, которая могла бы принять токен. Разбор и проверка подписи выполняются в вашем браузере, а токен и ключ не передаются ни нам, ни третьим лицам. Можно вставлять любые токены, в том числе боевые.
Какие алгоритмы подписи поддерживаются?
HS256/384/512, RS256/384/512, PS256/384/512 и ES256/384/512. EdDSA и экзотические алгоритмы разобрать можно, но проверить подпись нельзя - браузерная криптография их не поддерживает.
Почему написано «Подпись не проверена»?
Без ключа проверить подпись невозможно. Укажите ключ в поле слева, и результат появится сразу.
Можно ли расшифровать токен с пятью частями?
Нет. Такие токены (JWE) зашифрованы, и без ключа расшифровки их содержимое прочитать нельзя. Инструмент распознаёт такой токен и сообщает об этом.
Как проверить подпись RS256, если у меня только сертификат?
Извлеките открытый ключ командой openssl x509 -in cert.pem -pubkey -noout и вставьте результат («-----BEGIN PUBLIC KEY-----»). Сертификат целиком инструмент не читает.
Можно ли дать ссылку на готовый пример?
Да, добавьте к адресу страницы параметр ?example=hs256, ?example=expired или ?example=error - откроется страница с токеном и ключом из примера.
Похожие инструменты
Курс «Проектирование API и интеграций»
Глубокое погружение в REST, gRPC, SOAP, проектирование баз данных и брокеры сообщений (Kafka, RabbitMQ). Делегирование рутины нейросетям (ИИ). Перестанете бояться технических собеседований и начнете говорить с разработчиками на одном языке. Курс собран так, чтобы пробить зарплатный потолок и вырасти в грейде - ученики тому подтверждение.
Перейти к курсу на Stepik