Skip to content
Декодер JWT
Tools

Декодер JWT

Новое

Декодируйте JSON Web Token, изучите claims и проверьте подпись HS256 локально.

A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.

Runs entirely in your browser. Nothing is uploaded.

Декодируйте любой JSON Web Token прямо в браузере

Этот JWT декодер мгновенно превращает непрозрачную строку eyJ… в читаемый JSON. Вставьте JSON Web Token — инструмент разобьёт его по точкам, раскодирует заголовок и полезную нагрузку из Base64URL и покажет оба блока рядом в отформатированном виде, а сырую подпись отдельно. Это самый быстрый способ отладить поток аутентификации, проверить токен из ответа API или убедиться в точности клеймов, которые выдаёт бэкенд.

Каждая часть токена выделена своим цветом — заголовок, полезная нагрузка и подпись — чтобы три секции header.payload.signature было легко различить с первого взгляда. Никакой регистрации, никаких серверных загрузок и никаких дневных лимитов.

Читайте клеймы и проверяйте срок действия мгновенно

Декодер выделяет стандартные зарегистрированные клеймы из RFC 7519 — iss, sub, aud, exp, nbf, iat и jti — в чёткой таблице с понятным описанием каждого. Три временных клейма содержат секунды в формате Unix-эпохи, которые легко ошибочно прочитать, поэтому инструмент переводит их в ваш локальный дату и время и добавляет относительную подсказку: «выпущен 5 минут назад» или «истекает через 59 минут».

Самое важное — он отвечает на вопрос, ради которого обычно открывают JWT отладчик: ещё действителен ли этот токен? Клейм exp сравнивается с текущим временем, и токен автоматически помечается как Действительный или Просроченный — с учётом nbf, — чтобы сразу было видно, не из-за истёкшего ли токена приходит ошибка 401.

Проверяйте подпись — HS256, RS256 и ES256

Декодирование показывает, что токен утверждает; верификация доказывает, что ему можно доверять. Инструмент также является верификатором подписи JWT: считывает алгоритм из заголовка и проверяет подпись локально с помощью Web Crypto API браузера. Для HS256, HS384 и HS512 вы указываете общий секрет HMAC; для RS256, PS256 и ES256 (и их вариантов 384/512) вставляете публичный ключ издателя в формате PEM.

Поскольку математические вычисления выполняются на вашем устройстве, вы можете подтвердить подлинность токена — что никто не изменял полезную нагрузку — не отправляя токен, секрет или ключ на какой-либо сервер. Зелёная галочка — подпись совпадает; красный крест — токен изменён или используется неверный ключ.

Создание и кодирование JWT

Нужно пойти в обратную сторону? Встроенный JWT энкодер позволяет создать токен с нуля. Отредактируйте заголовок и полезную нагрузку как JSON, выберите алгоритм HMAC, введите секрет — и вы получите правильно подписанный токен header.payload.signature, готовый для копирования в запрос или тест. Удобные кнопки добавляют свежие клеймы iat и exp, чтобы тестовые токены содержали реалистичные временные метки.

Это делает UtiloKit объединённым декодером и энкодером JWT — проверяйте токены из API и создавайте новые для отправки, всё в одном месте. Тот же рабочий процесс, что и на jwt.io, но без участия сервера и без необходимости регистрации.

Сравнение с jwt.io, token.dev и jwtdecode.com

jwt.io — самый узнаваемый JWT инструмент в сети: создан Auth0, широко упоминается в документации, пользуется доверием миллионов разработчиков. Его главное ограничение — конфиденциальность: jwt.io в некоторых конфигурациях отправляет токен на серверы Auth0.

token.dev и jwtdecode.com поддерживают базовое декодирование, но не предлагают проверку подписей RS256/ES256 с PEM-ключом — а это алгоритм, который используют Auth0, Google, Microsoft Azure AD, Okta и большинство корпоративных OIDC-провайдеров.

Этот декодер UtiloKit справляется со всем этим в браузере: декодирование, проверка срока действия и полноценная верификация подписей для семейств алгоритмов HS/RS/PS/ES — бесплатно, без аккаунта, без дневного лимита и без передачи данных с устройства.

Безопасность JWT: что токен защищает, а что нет

JWT подписан для обеспечения целостности, но не зашифрован для обеспечения конфиденциальности. Любой, кто имеет токен, может прочитать каждый клейм в полезной нагрузке — кодировка Base64URL тривиально обратима, что и демонстрирует этот декодер. Поэтому в полезную нагрузку следует помещать только нечувствительные идентификаторы: ID пользователя, роль или email. Никогда не записывайте пароли, платёжные данные или API-ключи в полезную нагрузку JWT.

Подпись защищает от подделки: если злоумышленник изменит хотя бы один символ полезной нагрузки, подпись перестанет совпадать, и любой сервер, проверяющий с правильным ключом, отклонит токен. Классическая атака alg: none обходит это, заявляя, что алгоритм не используется — широко известная уязвимость (CVE-2015-9235), которую должна блокировать любая боевая JWT-библиотека.

Используйте exp для ограничения срока жизни токенов, передавайте по HTTPS, храните в памяти или httpOnly-куках (не в localStorage), проверяйте подпись при каждом запросе. Декодируйте и проверяйте токены с этим бесплатным инструментом, чтобы убедиться в правильной настройке этих свойств перед выкаткой в продакшн.

Frequently asked questions

Что такое JWT (JSON Web Token)?

JWT — это компактный, URL-безопасный способ передачи подписанной информации между двумя сторонами, чаще всего в виде токена авторизации. Он состоит из трёх частей, закодированных в Base64URL и разделённых точками: header.payload.signature. Заголовок указывает алгоритм подписи, полезная нагрузка содержит клеймы (данные), а подпись позволяет получателю убедиться, что токен не был изменён. JWT используется в OAuth 2.0, OpenID Connect, Auth0, Firebase, Supabase, AWS Cognito и большинстве современных систем аутентификации.

Как декодировать JWT?

Разделите токен по двум точкам и раскодируйте из Base64URL первые две части. Заголовок и полезная нагрузка после декодирования — это обычный JSON; третья часть (подпись) остаётся бинарной. Инструмент делает это мгновенно — вставьте токен, и декодированные заголовок и полезная нагрузка отобразятся в отформатированном виде. Ничего никуда не отправляется; декодирование происходит в браузере. Для декодирования JWT не нужен секрет или приватный ключ.

Безопасно ли декодировать JWT онлайн?

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

Что содержится внутри JWT?

Три части. Заголовок — это JSON, описывающий тип и алгоритм подписи, например {"alg":"HS256","typ":"JWT"}. Полезная нагрузка — это JSON с клеймами: зарегистрированными (sub, exp, iat…) и любыми пользовательскими данными — ролями, ID пользователя и т.д. Подпись — это хэш с ключом от заголовка и полезной нагрузки, доказывающий их неизменность. Ключ нужен только для подписи; заголовок и полезная нагрузка лишь закодированы в Base64URL, а не зашифрованы.

Как проверить, истёк ли срок действия JWT?

Прочитайте клейм exp — временну́ю метку Unix в секундах. Если exp раньше текущего времени, токен просрочен и должен быть отклонён. Этот декодер переводит exp в читаемую дату, показывает относительное время вроде «истёк 3 часа назад» или «истекает через 59 минут» и автоматически помечает токен как Действительный или Просроченный.

Как проверить подпись JWT?

Декодируйте заголовок, чтобы прочитать alg, затем пересчитайте подпись для header.payload и сравните. Для HS256/384/512 нужен общий секрет; для RS256, PS256 или ES256 — публичный ключ издателя в формате PEM. Инструмент проверяет все варианты локально с помощью Web Crypto API — выберите алгоритм, вставьте секрет или публичный ключ, и он сообщит, подлинна ли подпись.

Можно ли декодировать JWT без секрета?

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