calcal.ru
Инструмент для разработчиков

JWT декодер онлайн

Декодируйте и анализируйте JSON Web Token прямо в браузере. Просмотр header, payload и signature с русскоязычными пояснениями, проверка срока действия и расшифровка алгоритма подписи.

RFC 7519
Стандарт
Открытый стандарт IETF для JWT
10+
Алгоритмов
HS256, RS256, ES256, EdDSA и другие
7
Стандартных claims
iss, sub, aud, exp, nbf, iat, jti
100%
В браузере
Токен не покидает ваш компьютер

Что такое JWT

JSON Web Token (JWT) — это открытый стандарт RFC 7519, описывающий компактный и самодостаточный способ передачи информации между двумя сторонами в виде JSON-объекта. Токен подписывается цифровой подписью, что гарантирует его целостность и подлинность. JWT широко используется для авторизации в веб-приложениях, API и микросервисной архитектуре.

🔴

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

Первая часть токена. Содержит метаданные: тип токена (обычно JWT) и алгоритм подписи (HS256, RS256, ES256 и др.). Кодируется в Base64URL. Определяет, как именно будет проверяться подпись токена.

🟣

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

Вторая часть — тело токена с набором утверждений (claims). Содержит информацию о пользователе, правах доступа, времени жизни и другие данные. Payload не зашифрован — любой может его прочитать, поэтому нельзя хранить в нём секреты.

🔵

Signature (подпись)

Третья часть — криптографическая подпись. Создаётся путём хеширования header и payload с секретным ключом. Позволяет серверу убедиться, что токен не был подделан или изменён после выпуска. Без ключа подпись невозможно сгенерировать.

Где применяется JWT декодер

Инструмент незаменим для разработчиков, тестировщиков и DevOps-инженеров, работающих с токенами авторизации.

🐛

Отладка API

Быстрый просмотр содержимого токена при отладке запросов к REST API и GraphQL. Понимание, какие данные передаются в Authorization-заголовке и какие права имеет пользователь.

🔒

Аудит безопасности

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

🏗

Разработка OAuth/OIDC

Инспекция id_token и access_token при реализации OAuth 2.0 и OpenID Connect. Проверка корректности claims, аудитории и издателя перед выпуском в продакшен.

🧪

Тестирование

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

📚

Обучение

Наглядное изучение структуры JWT для студентов и начинающих разработчиков. Понимание принципов работы токенов на реальных примерах с русскоязычными пояснениями к каждому полю.

🔄

Интеграция микросервисов

Диагностика проблем при передаче токенов между микросервисами. Проверка совместимости алгоритмов подписи, валидация claims и анализ цепочки доверия.

Структура JWT/ техническое руководство

JWT состоит из трёх частей, разделённых точками: header.payload.signature. Каждая часть кодируется в Base64URL — вариант Base64, безопасный для использования в URL и HTTP-заголовках.

Алгоритмы подписи (Header.alg)

Алгоритм определяет способ создания и проверки подписи. Выбор зависит от архитектуры: симметричные (HMAC) проще, но требуют общий секрет; асимметричные (RSA, ECDSA) позволяют разделить создание и проверку токена.

HMAC (HS256/384/512)

Симметричный. Один секретный ключ для подписи и проверки. Подходит для монолитных приложений.

RSA (RS256/384/512)

Асимметричный. Приватный ключ подписывает, публичный проверяет. Идеален для микросервисов и OIDC.

ECDSA (ES256/384/512)

Асимметричный на эллиптических кривых. Короткие ключи при высокой стойкости. Компактные подписи.

Стандартные claims (RFC 7519)

Зарезервированные имена полей в payload. Все необязательны, но их использование рекомендуется для совместимости и безопасности.

issIssuer (издатель)Идентификатор сервиса, выпустившего токен. Обычно URL.
subSubject (субъект)ID пользователя или сущности, для которой выпущен токен.
audAudience (аудитория)Сервис или сервисы, для которых предназначен токен.
expExpiration (истечение)Unix timestamp, после которого токен недействителен.
nbfNot Before (не раньше)Unix timestamp, до которого токен нельзя использовать.
iatIssued At (создан)Unix timestamp создания токена.
jtiJWT ID (идентификатор)Уникальный ID токена для предотвращения replay-атак.

Формула подписи

Подпись создаётся по формуле, которая гарантирует, что ни header, ни payload не были изменены после создания токена.

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

Важно: Payload JWT не зашифрован, а лишь закодирован в Base64URL. Любой может декодировать и прочитать содержимое. Никогда не помещайте пароли и секреты внутрь JWT.

Безопасность: наш декодер работает полностью в браузере. Ваш токен не отправляется ни на какие серверы и не покидает ваш компьютер.

JWT vs сессии на сервере

Два основных подхода к авторизации в веб-приложениях. У каждого свои сильные стороны и ограничения, и выбор зависит от архитектуры проекта.

🎫

JWT-токены

stateless-авторизация
  • + Не требуют хранилища на сервере
  • + Легко масштабируются горизонтально
  • + Работают между разными доменами (CORS)
  • + Подходят для мобильных приложений и SPA
  • - Невозможно отозвать до истечения exp
  • - Увеличивают размер каждого HTTP-запроса
  • - Требуют отдельного механизма refresh
🗄

Серверные сессии

stateful-авторизация
  • + Мгновенный отзыв при logout
  • + Маленький cookie (только Session ID)
  • + Данные хранятся на сервере, клиент не видит
  • + Проще реализация для монолита
  • - Требуют хранилище (Redis, БД)
  • - Сложнее масштабировать (sticky sessions)
  • - Проблемы с CORS и мобильными клиентами

Безопасность JWT

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

1Не храните секреты в payload

Payload JWT кодируется в Base64URL, но не шифруется. Любой, кто перехватит токен, может прочитать его содержимое. Никогда не помещайте в JWT пароли, номера кредитных карт или другие конфиденциальные данные. Если нужна конфиденциальность, используйте JWE (JSON Web Encryption).

2Всегда проверяйте подпись

Не доверяйте payload без верификации подписи. Проверяйте алгоритм (alg) из header перед валидацией — атака «algorithm confusion» подменяет RS256 на HS256, используя публичный ключ как секрет HMAC. Используйте whitelist разрешённых алгоритмов.

3Устанавливайте короткий exp

Время жизни access-токена должно быть коротким (5-15 минут). Используйте схему access + refresh token: короткоживущий access для запросов и долгоживущий refresh для получения нового access. Это минимизирует ущерб при компрометации токена.

4Безопасное хранение на клиенте

Храните JWT в httpOnly cookie (недоступен для JavaScript, защита от XSS) с флагами Secure и SameSite=Strict. Избегайте localStorage — он уязвим для XSS-атак. Для SPA рассмотрите хеширование в сочетании с CSRF-токенами.

5Проверяйте iss и aud

Всегда валидируйте claims iss (издатель) и aud (аудитория) при проверке токена. Это предотвращает использование токена, выпущенного для другого сервиса. Особенно критично в мультитенантных системах и при работе с внешними провайдерами OAuth.

6Используйте надёжные ключи

Для HMAC (HS256) длина секрета должна быть не менее 256 бит (32 байта). Используйте криптографически стойкие генераторы. Для RSA — минимум 2048 бит. Регулярно ротируйте ключи с помощью JWK Set (JWKS) и поля kid в header.

Советы по работе с JWT

Практические рекомендации, которые помогут эффективно использовать JWT в ваших проектах.

1Минимизируйте payload

Помещайте в JWT только необходимый минимум данных: ID пользователя, роль, время жизни. Чем больше payload, тем больше размер каждого HTTP-запроса. Детальные данные (email, имя, настройки) лучше запрашивать по user ID через API.

2Используйте асимметричные алгоритмы

В микросервисной архитектуре предпочитайте RS256 или ES256 вместо HS256. Это позволяет auth-сервису подписывать токены приватным ключом, а остальным сервисам — проверять их публичным ключом без доступа к секрету.

3Не отключайте валидацию exp

В development-среде часто отключают проверку времени жизни для удобства. Это опасная практика, которая может попасть в продакшен. Настройте CI/CD для проверки, что валидация exp включена во всех средах.

4Логируйте использование токенов

Записывайте jti (JWT ID) каждого обработанного токена в логи. Это поможет при расследовании инцидентов безопасности: вы сможете отследить, какой именно токен использовался и когда. Используйте jti для защиты от replay-атак.

Как пользоваться декодером

Простая инструкция для быстрого анализа JWT-токена за несколько секунд.

1

Скопируйте JWT

Возьмите токен из заголовка Authorization, cookie, DevTools или логов вашего приложения. Обычно он начинается с eyJ.

2

Вставьте в поле ввода

Декодирование происходит мгновенно при вставке. Полностью в браузере — токен никуда не отправляется.

3

Изучите результат

Три цветные панели покажут header, payload и signature. Стандартные claims сопровождаются русскими пояснениями.

4

Проверьте срок действия

Блок статуса покажет, истёк ли токен и сколько времени осталось. Скопируйте нужные данные кнопкой «Копировать».

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

JWT (JSON Web Token) — это стандарт RFC 7519 для безопасной передачи информации между сторонами в формате JSON. Токен подписывается криптографически, что гарантирует его целостность. JWT используется для авторизации в веб-приложениях: после входа сервер выдаёт токен, и клиент отправляет его с каждым запросом вместо логина и пароля.
Наш декодер работает полностью в браузере на JavaScript. Токен не отправляется ни на какие серверы — вся обработка происходит локально на вашем устройстве. Тем не менее, для продакшен-токенов с чувствительными данными рекомендуется использовать CLI-инструменты или локальные утилиты.
JWT — это общий формат. JWS (JSON Web Signature) — подписанный JWT, который гарантирует целостность, но payload можно прочитать (именно это мы декодируем). JWE (JSON Web Encryption) — зашифрованный JWT, где payload скрыт от посторонних. На практике, когда говорят «JWT», обычно имеют в виду именно JWS.
Claims (утверждения) — это пары ключ-значение в payload токена. Стандарт RFC 7519 определяет 7 зарезервированных claims: iss (издатель), sub (субъект), aud (аудитория), exp (время истечения), nbf (не раньше), iat (время создания), jti (уникальный ID). Помимо них, можно добавлять любые пользовательские claims (роль, email, права).
Вставьте токен в наш декодер — если в payload есть claim exp, инструмент автоматически покажет статус: токен действителен (зелёный блок) или истёк (красный блок) с точным указанием оставшегося или прошедшего времени. Программно проверка делается сравнением exp с текущим Unix timestamp.
Потому что payload JWT не зашифрован, а лишь закодирован в Base64URL. Любой, кто получит токен (через перехват трафика, XSS, логи), может декодировать и прочитать содержимое. Именно это делает наш декодер. В JWT следует хранить только минимум: ID пользователя, роль, время жизни.
Для монолитных приложений подходит HS256 (HMAC + SHA-256) — он быстрый и простой в настройке. Для микросервисов рекомендуется RS256 или ES256 (асимметричные алгоритмы), где auth-сервис подписывает приватным ключом, а остальные сервисы проверяют публичным. ES256 даёт более компактные подписи при той же стойкости.
В OAuth 2.0 access_token может быть JWT (хотя стандарт не требует этого). В OpenID Connect id_token — всегда JWT, содержащий информацию о пользователе (email, имя, sub). При авторизации через Google, Яндекс или другой провайдер вы получаете id_token, который можно декодировать нашим инструментом и увидеть данные пользователя.
JWT по своей природе — stateless, и отозвать его напрямую нельзя. Но есть обходные решения: 1) чёрный список (blacklist) jti в Redis/БД; 2) короткий exp (5-15 мин) + refresh token; 3) версия сессии в claims — при logout увеличиваете версию на сервере. Каждый подход добавляет stateful-элемент, но это неизбежный компромисс.
Это значит, что строка не является валидным JWT. Корректный JWT состоит из трёх частей, разделённых точками: header.payload.signature. Проверьте, что вы скопировали токен полностью, без лишних пробелов или переносов строк. Часто проблема в том, что скопирован только payload или обрезана подпись.
Лиана Арифметова
Создатель

Лиана Арифметова

Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

⚖️

Отказ от ответственности

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Медицинские, финансовые и профессиональные решения должны приниматься исключительно на основании консультации с квалифицированными специалистами — врачом, финансовым советником, инженером или другим профессионалом в соответствующей области. Не используйте результаты данного инструмента как единственное основание для принятия важных решений.

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

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

🏗️

Калькулятор расхода угля

Расчёт количества угля на отопительный сезон. Антрацит, каменный, бурый уголь.

🏥

Шкала Апгар — калькулятор онлайн

Рассчитайте оценку по шкале Апгар для новорождённого. ЧСС, дыхание, мышечный тонус, рефлексы и цвет кожи. Мгновенный результат.

🏠

Калькулятор туриста: бюджет, валюта и виза

Конвертер валют, расчет бюджета поездки и стоимости визы/страховки. Универсальный инструмент планирования путешествий.

💻

Генератор случайного текста из букв

Случайные строки заданной длины и алфавита. Пароли, токены, промо-коды, тестовые данные.

🏠

Калькулятор бёрдвотчинга: оптика, снаряжение, маршруты

Калькулятор для наблюдения за птицами. Подбор оптики, снаряжение, определитель птиц России, маршруты и бюджет.

💰

Калькулятор инвестиций в золото

Расчёт доходности инвестиций в золото: слитки, монеты, ОМС. Спред, хранение, налогообложение.

💻

Валидатор ОГРН/ОГРНИП

Проверка контрольной суммы ОГРН (13 цифр) и ОГРНИП (15 цифр) с расшифровкой структуры: тип, год, регион.

🏠

Калькулятор утилизационного сбора

Расчёт утилизационного сбора на автомобиль. Базовые ставки, коэффициенты по объёму двигателя и возрасту ТС. ФЗ-89, ПП 1291.

🧮

Калькулятор скорости клубочковой фильтрации

Расчёт СКФ по формулам CKD-EPI 2021, MDRD и Cockcroft-Gault. Стадии ХБП, интерпретация, сравнение формул.

🏠

Конвертер размеров одежды (RU/EU/US/UK)

Перевод размеров между российской, европейской, американской и британской системами. Мужская, женская, детская.

🏠

Калькулятор декупажа

Расчёт расхода салфеток, клея и лака для декупажа. Стоимость материалов.

🏗️

Калькулятор забора

Расчёт забора: профнастил, штакетник, рабица. Столбы, секции, крепёж, бетон.

🏠

Калькулятор шашлыка

Расчёт мяса, маринада, углей и овощей для шашлыка на компанию

🏭

Калькулятор портовых операций: стоянка, демередж, погрузка

Расчёт стоимости портовых операций: погрузка-разгрузка, демередж/диспач, время стоянки судна, загрузка причала и складские операции.

💻

CI/CD калькулятор: пайплайн, кэш, тесты, раннеры, деплой

Комплексный CI/CD калькулятор: оптимизация пайплайна (критический путь, параллелизация), кэш сборки (hit ratio, ROI), анализ тестов (flaky, шардирование), артефакты (Docker, npm), раннеры (автоскейлинг) и стратегии деплоя (Blue-Green, Canary, Rolling).