Что такое Декодер JWT?
JWT (JSON Web Token) — это стандартный способ представления claims аутентификации и авторизации в современных веб-API. Это компактный самодостаточный токен, состоящий из трёх частей — заголовка, описывающего алгоритм подписи, полезной нагрузки, содержащей сами claims (например, ID пользователя, роли и срок действия), и подписи, позволяющей принимающему серверу убедиться, что токен не был изменён.
Этот декодер мгновенно считывает заголовок и полезную нагрузку, чтобы вы могли отлаживать проблемы аутентификации, проверять, какие claims на самом деле отправляет API, или узнавать, когда истекает срок действия токена — и всё это без бэкенда, консольных утилит или вставки конфиденциальных токенов на сторонний сервер, поскольку всё выполняется локально в вашем браузере.
Когда использовать этот калькулятор
- Отладка причин, по которым API отклоняет токен, путём проверки его claims и времени истечения срока
- Проверка времени истечения токена во время расследования обращения в поддержку или реагирования на инцидент
- Проверка того, что провайдер SSO или OAuth выдаёт утверждения, которые ожидает ваше приложение.
- Изучение структуры JWT для подготовки к собеседованиям или курсу по безопасности
- Проверка токена, перехваченного из инструментов разработчика браузера или логов сервера, для понимания его содержимого
- Сравнение алгоритма заголовка между токенами для отладки сбоев аутентификации из-за несовпадения алгоритмов
Шаги:
- Вставьте свой JWT в поле ввода или нажмите «Загрузить пример», чтобы попробовать готовый.
- Заголовок и полезная нагрузка декодируются автоматически по мере ввода.
- Просмотрите claims, такие как iss, sub, exp и iat, в удобочитаемом виде.
- Claims с временными метками (exp, iat, nbf) автоматически преобразуются в читаемые даты.
Формула
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
Декодирование: разделить по ".", декодировать первые две части из base64Url, разобрать как JSON.
Проверка (здесь не выполняется): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
Варианты использования
- Отладка причин, по которым API отклоняет токен, путём проверки его claims
- Проверка времени истечения токена во время расследования обращения в поддержку
- Проверка того, что провайдер SSO или OAuth выдаёт ожидаемые claims
- Изучение структуры JWT для подготовки к собеседованиям или учёбы
- Быстрая проверка токена, скопированного из инструментов разработчика браузера или логов сервера
Основные преимущества
- Мгновенно декодирует любой JWT без бэкенда или консольных утилит
- Всё выполняется на стороне клиента — токены никогда не отправляются на сервер
- Автоматически преобразует claims с временными метками в читаемые даты
- Бесплатно, без регистрации, работает с любым JWT независимо от алгоритма
Советы профессионалов
- Всегда сначала проверяйте 'exp' при отладке ошибки «неавторизован» — истёкший токен является самой частой причиной
- Сверяйте 'alg' в заголовке с тем, что ожидает ваш бэкенд, чтобы выявлять ошибки несовпадения алгоритма
- Никогда не доверяйте декодированной полезной нагрузке как доказательству личности без проверки подписи на сервере
- Используйте короткоживущие токены вместе с refresh-токенами вместо долгоживущих JWT, чтобы ограничить последствия утечки
Распространенные ошибки
- Считать, что декодированный JWT — это проверенный JWT: декодирование только читает содержимое, но не подтверждает подлинность
- Хранить конфиденциальные данные (пароли, секреты) в полезной нагрузке, забывая, что её может прочитать кто угодно
- Вставлять продакшн-токены в ненадёжные онлайн-декодеры
- Путать 'exp' (истечение срока) с 'iat' (время выпуска) при отладке проблем со сроком жизни токена
Объяснение ключевых терминов
- Claim: Сведения, утверждаемые о субъекте, например ID пользователя или роль
- Header (заголовок): Первый сегмент JWT, указывающий алгоритм подписи и тип токена
- Payload (полезная нагрузка): Второй сегмент JWT, содержащий сами claims
- Signature (подпись): Третий сегмент JWT, используемый для проверки того, что токен не был изменён
Связанные понятия
- Генератор хэша:
- Генератор UUID:
- Кодировщик/декодировщик Base64:
- Форматер JSON:
- Проверка надёжности пароля:
Пример
Токен, начинающийся с eyJhbGciOiJIUzI1NiJ9, декодируется в заголовок {"alg":"HS256","typ":"JWT"} — это означает, что токен подписан алгоритмом HMAC-SHA256.
Интерпретация результатов
Декодер разделяет JWT по двум точкам и декодирует первые два сегмента в Base64URL. Заголовок сообщает алгоритм подписания (например, HS256 или RS256) и тип токена. Полезная нагрузка содержит фактические утверждения — идентификацию пользователя, разрешения и метки времени.
Метки времени (exp, iat, nbf) автоматически преобразуются из эпохи Unix в читаемые даты. Если 'exp' показывает дату в прошлом, токен истёк, и большинство серверов отклонят его. Утверждение 'sub' (субъект) обычно содержит идентификатор пользователя, а 'iss' (эмитент) определяет сервер, создавший токен.
Помните: декодирование — это не проверка. Раздел подписи отображается, но проверить его можно только с секретным или открытым ключом. Декодированная нагрузка носит лишь информационный характер — никогда не считайте её доказательством личности без проверки подписи на стороне сервера.

