JSON Web Tokens

JWT: расшифровать токен

Покажет payload, claims, алгоритм и срок действия. Токен не уходит с вашего устройства

Как расшифровать JWT токен

Вставьте строку в поле выше, и расшифровка начнётся сразу, кнопок нажимать не нужно. Ключ не требуется: заголовок и payload у JWT не зашифрованы, а всего лишь закодированы, поэтому прочитать их может кто угодно. Декодер разложит токен на три части, покажет claims списком с расшифровкой стандартных имён и отдельно выведет срок действия: истёк токен или сколько ему осталось. Всё считается прямо в браузере, токен никуда не отправляется.

Формат токена: из чего состоит JWT

JWT — это три блока, разделённые точками: заголовок (каким алгоритмом подписан токен), payload (сами данные: кто пользователь, какие у него роли, до какого времени токен годен) и подпись (она не содержит данных, а доказывает, что токен не подделали). Первые два блока — обычный JSON, поэтому декодер и показывает их читаемым списком.

Расшифровать токен — не значит проверить его

Это разные операции, и путать их опасно. Расшифровка — разбор Base64, ключ не нужен, делает кто угодно. Проверка токена — пересчёт подписи секретным или публичным ключом, и только она отвечает на вопрос «этот токен вообще наш?». Здесь подпись не проверяется намеренно, для этого пришлось бы просить у вас ключ. Поэтому решение о доступе всегда принимается на сервере после верификации, а декодер остаётся инструментом для отладки: посмотреть, что внутри, и понять, почему запрос отлетает. Разбор с примерами кода есть в статье что внутри JWT-токена и как работает авторизация.

Почему JWT не декодируется обычным Base64

Заголовок, payload и подпись JWT закодированы в Base64URL, варианте Base64, где символы + и / заменены на - и _, а завершающие = обычно опущены. Так строку можно безопасно вставлять в URL и заголовки без экранирования. Обычный Base64-кодировщик на такой строке споткнётся или выдаст мусор. Этот декодер сначала возвращает символы обратно и восстанавливает паддинг, а потом уже разбирает JSON.

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

Декодирование происходит локально в браузере, и сам инструмент никуда токен не отправляет. Но это не повод копировать в любой сайт токен из продакшена, где в payload лежат реальные email, роли или ID пользователей. Для отладки формата и claims безопаснее взять один из встроенных примеров (Auth0, Firebase, AWS Cognito) или тестовый токен, который вы сгенерировали сами, а не тот, что выдала боевая система реальному пользователю.

JWT — те же данные JSON, просто закодированные в base64. Разбор самого формата и отличие от XML есть в статье Что такое JSON: формат данных простыми словами, а про access- и refresh-токены, срок жизни и типичные ошибки написано в разборе JWT-токена.

Похожие инструменты

Другие полезные инструменты из той же категории

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

JWT (JSON Web Token) - это безопасный способ передачи информации в виде JSON объекта. Состоит из трех частей, закодированных в Base64 и разделенных точками: Заголовок (информация об алгоритме), Полезная нагрузка (утверждения/данные) и Подпись (проверка).

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

Утверждения - это заявления о сущности (обычно пользователе). Стандартные утверждения включают "iss" (издатель), "exp" (истечение), "sub" (субъект) и "aud" (аудитория). Пользовательские утверждения могут содержать любые JSON данные, необходимые вашему приложению.

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

Частые причины: неправильная структура токена (не 3 части), недопустимое кодирование Base64, поврежденные символы или токены, которые на самом деле не являются JWT. Убедитесь, что вставляете полный токен, включая все точки.