Бесплатный декодер и отладчик JWT

Вставьте любой JSON Web Token, чтобы мгновенно декодировать его заголовок и полезную нагрузку, проверить статус срока действия и подтвердить его подпись — HS256, RS256, ES256, PS256 и другие. 100% на стороне клиента; ваши токены никогда не покидают браузер.

9 Поддерживаемых алгоритмов
100% Безопасность в браузере
0 Данных отправляется на серверы
Заголовок (Header) Полезная нагрузка (Payload) Подпись (Signature)
Вставьте JWT выше, чтобы мгновенно его декодировать.

Что внутри JWT

Заголовок (Header)

Небольшой JSON-объект, в котором указаны алгоритм подписи (alg) и тип токена (typ). Он только декодируется, а не шифруется — он виден любому, у кого есть токен.

JSON, закодированный в Base64URL

Полезная нагрузка (Payload)

Утверждения (claims) — фактические данные, например, кого представляет токен (sub) и когда истекает его срок действия (exp). Тоже только кодируется, никогда не относитесь к этому как к секрету.

JSON, закодированный в Base64URL

Подпись (Signature)

Криптографическая подпись заголовка и полезной нагрузки. Это единственная часть, которая доказывает, что токен подлинный и не был изменен — и единственная часть, для проверки которой требуется ключ.

Подписано HMAC или открытым ключом

Часто задаваемые вопросы (FAQ)

Что делает декодер JWT?

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

Является ли декодирование JWT тем же самым, что и его проверка?

Нет. Декодирование просто раскрывает читаемое содержимое токена — оно не требует секрета и ничего не доказывает о его подлинности. Проверка (верификация) сверяет подпись с секретным или открытым ключом, чтобы подтвердить, что токен подлинный и не был изменен. Любой может декодировать JWT; только тот, у кого есть правильный ключ, может его проверить.

Нужен ли мне секретный ключ для декодирования JWT?

Нет. Заголовок и полезная нагрузка JWT только кодируются в Base64URL, а не шифруются, поэтому любой может их декодировать и прочитать без какого-либо ключа. Секретный или открытый ключ нужен только для проверки подписи, а не для декодирования читаемого содержимого.

Отправляются ли данные моего токена на ваш сервер?

Нет. Этот инструмент полностью работает в вашем браузере, используя JavaScript и Web Crypto API. Ваш токен, секретный ключ и открытый ключ никуда не передаются. Вы можете убедиться в этом сами, проверив вкладку Сеть (Network) в браузере во время использования инструмента.

Могу ли я проверить токены RS256 или ES256 с помощью этого инструмента?

Да. Этот декодер поддерживает проверку подписи для алгоритмов HMAC (HS256, HS384, HS512) с использованием общего секрета, а также для алгоритмов с открытым ключом (RS256/384/512, ES256/384/512, PS256/384/512) с использованием открытого ключа в формате PEM.

Почему мой токен отображается как истекший?

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

Что означает alg: none и почему он помечается предупреждением?

Алгоритм "none" означает, что токен заявляет об отсутствии у него какой-либо подписи. Это хорошо известная уязвимость JWT — некоторые плохо настроенные библиотеки принимают такие токены как действительные без какой-либо проверки, позволяя злоумышленнику подделывать любые утверждения. Производственные системы всегда должны отклонять неподписанные токены.

Нужно создать новый секретный ключ?

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

Перейти к генератору секретных ключей JWT