Проверка открытым ключом

Декодер JWTс отдельными проверками подписи и полей

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

Декодер JWT

Токен JWT

Токен и ключи остаются в памяти страницы. Удалённые ключи не запрашиваются, ввод не сохраняется.

Декодированный JSON и отчёт

Не проверено: декодирование не подтверждает действительность токена.

Настройки подписи и полей

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

Открытый ключ пользователя

Один открытый JWK или SPKI PEM PUBLIC KEY. RS256 требует RSA 2048–8192 бит, ES256 — P-256. Закрытые ключи и удалённые JWKS не принимаются.

exp, nbf и iat проверяются отдельно от подписи. Будущий iat здесь отмечается как ошибка проверки. Отсутствующие даты остаются отсутствующими; пустые издатель и получатель не проверяются. UTC отображается до миллисекунд; исходная дробь остаётся в отчёте.

Пределы: токен 100 000 символов, ключ 20 000, тестовые поля 50 000. Только строгий base64url, UTF-8 и объекты JSON. Повторные имена и числа, меняющиеся при преобразовании, отклоняются.

Генератор тестовых токенов

Вставьте компактный JWT.

Декодер JWT помогает разобраться с отказом API: прочитайте заголовок и поля, сравните издателя, получателя и время. Так проще проверить, отправляет ли приложение ожидаемый токен. Начальный результат всегда содержит непроверенную подпись.

Декодирование JWT раскрывает данные base64url без ключа. Проверка подписи JWT требует отдельно выбранного открытого ключа. Срок действия токена — другая проверка: правильная подпись сама по себе не означает, что доступ разрешён.

Зачем Декодер JWT разделяет результаты

Читаемый JSON не доказывает подлинность

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

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

Эксперименты в отдельном черновике

Тестовый генератор создаёт временную локальную пару ключей. Сначала появляются предпросмотр токена и открытого ключа. Применение заменяет ввод вместе; одна отмена восстанавливает прежние ввод и результат.

Отдельный тестовый черновик создаёт предпросмотр токена и открытого ключа перед применением.

Задайте условия до проверки

01

Различайте автоматическое чтение и проверку

Декодирование запускается через 350 мс после изменений. Отключите автоматический режим для кнопки или Ctrl/Cmd+Enter. Проверка подписи и генерация тестов этим переключателем не запускаются.

02

Укажите доверенные ожидания самостоятельно

Выберите RS256 или ES256 и вставьте открытый JWK либо SPKI PUBLIC KEY PEM. При необходимости задайте издателя и получателя. Ссылки заголовка не выбирают доверенный ключ.

03

Воспроизведите нужный момент

Пустое поле времени использует текущее время каждого запуска. Unix-секунды позволяют повторить проверку на заданный момент. Кнопка текущего времени открывает предпросмотр; изменения блокируют экспорт старого результата.

Разберите возможные причины отказа

Заголовок и поля в читаемом виде

JWT парсер показывает два объекта JSON и сведения о подписи. Заявленный алгоритм отличается от выбранного вами; kid и URL не становятся основанием доверия.

Сравнение с открытым ключом

RS256 принимает RSA длиной 2048–8192 бит, ES256 — P-256. Несовпадение подписи отличается от неверного ключа, неподдерживаемого алгоритма и ошибки формата.

Повторяемая проверка времени

exp, nbf и iat сравниваются с опорным временем и допуском 0–86400 секунд. Будущий iat отмечается как не пройденный по политике этого инструмента. Отсутствующее время остаётся отсутствующим.

Издатель и получатель

iss сравнивается точно. aud может быть строкой или массивом, содержащим ожидаемого получателя. При пустом ожидании проверка не выполняется. Совпадение подписи не предоставляет прав.

Допустимые форматы и границы доверия

Только три компактных сегмента
Введите токен без Bearer, внешних пробелов и заполнения. JWE из пяти частей не расшифровывается. none можно прочитать с пустой подписью, но нельзя получить статус подтверждённой подписи.
Строгие текст и числа
Заголовок и поля должны быть объектами JSON в UTF-8. Повторные имена, непарные суррогаты и неканонический base64url отклоняются. Представимые дроби допустимы; числа, незаметно меняющиеся при преобразовании, нет.
Только открытый материал для проверки
Используйте один открытый JWK либо полный SPKI PUBLIC KEY PEM. Закрытые и симметричные ключи отклоняются. Противоречащие проверке alg, use или key_ops в JWK также приводят к отказу.
Без удалённых ключей и расширений
jku, x5u, kid, jwk и x5c остаются недоверенными метаданными. По ним не выполняются запросы или выбор ключей. Подписи с crit, b64 или zip не проверяются.
Размер и отображение времени
Пределы: токен 100 000 символов, ключ 20 000, тестовые поля 50 000. Созданный токен также обязан укладываться в свой предел. Время вне диапазона Date недопустимо; UTC показывает миллисекунды, исходная дробь сохраняется в отчёте.
Тест не заменяет аутентификацию
Генератор изначально выключен и создаёт временные ключи только по явной команде. Применение не запускает проверку подписи. Права, отзыв токена и правила сервиса проверяет приложение.

Вопросы: Декодер JWT

Декодирование подтверждает подпись токена?

Нет. При первом чтении раскрываются только данные. Для проверки явно выберите RS256 или ES256 и укажите открытый ключ. Совпадение подписи не заменяет отдельные проверки времени, издателя и получателя.

Почему токен ещё не начал действовать?

Обычно nbf находится позже опорного времени с учётом допуска часов. Проверьте исходные Unix-секунды, часы устройства и выбранный момент проверки. Эта причина отказа не зависит от совпадения подписи.

Отправляется ли JWT на сервер?

Ввод обрабатывается только в памяти текущей страницы. Черновики не сохраняются, удалённые ключи не загружаются. Копирование или скачивание отчёта выполняется лишь по вашему действию.

Как обработать префикс Bearer?

Удалите Bearer и пробел после него вручную. Здесь нужен исходный токен из трёх сегментов; инструмент не извлекает его автоматически из заголовка Authorization, чтобы не менять входные данные незаметно.

Зашифровано ли содержимое JWT?

В обычном подписанном JWT заголовок и поля лишь закодированы в base64url. Любой владелец токена может их прочитать. Подпись обеспечивает проверяемую целостность, но не скрывает содержимое.

Результат оказался неожиданным?

Продолжите исследование

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