CoderTools

Кодировщик/Декодер JWT

Безопасное декодирование, проверка и генерация JWT-токенов

Декодированный JWT

Заголовок


                        

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


                        

Подпись


                        

Что такое JWT?

JSON Web Token (JWT)

JWT (JSON Web Token) — это открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасной передачи информации между сторонами в виде объекта JSON. Эта информация может быть проверена и считается надежной, поскольку имеет цифровую подпись. JWT может быть подписан с использованием секрета (с алгоритмом HMAC) или пары открытого/закрытого ключей RSA или ECDSA.

Структура JWT

JWT состоит из трех частей, разделенных точками (.), которые являются:

xxxxx.yyyyy.zzzzz
  • Заголовок : Содержит тип токена (JWT) и алгоритм подписи (например, HS256, RS256)
  • Полезная нагрузка : Содержит утверждения — заявления о сущности (обычно пользователе) и дополнительные данные
  • Подпись : Используется для проверки того, что отправитель JWT является тем, за кого себя выдает, и что сообщение не было изменено в пути

Алгоритмы подписи

JWT поддерживает различные алгоритмы подписи:

  • HS256: HMAC с SHA-256. Симметричный алгоритм с использованием общего секрета
  • HS384: HMAC с SHA-384. Симметричный алгоритм с более сильным хешем
  • HS512: HMAC с SHA-512. Симметричный алгоритм с самым сильным хешем
  • RS256: Подпись RSA с SHA-256. Асимметричный алгоритм с использованием пары открытого/закрытого ключей
  • RS384: Подпись RSA с SHA-384. Асимметричный алгоритм с более сильным хешем
  • RS512: Подпись RSA с SHA-512. Асимметричный алгоритм с самым сильным хешем

Стандартные утверждения

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

  • iss (Issuer): Эмитент токена
  • sub (Subject): Субъект токена (ID пользователя)
  • aud (Audience): Целевая аудитория
  • exp (Expiration Time): Время истечения (Unix timestamp)
  • nbf (Not Before): Не действителен до указанного времени
  • iat (Issued At): Время выпуска
  • jti (JWT ID): Уникальный идентификатор токена

Общие варианты использования

  • Аутентификация: После входа пользователя каждый последующий запрос включает JWT, обеспечивая доступ к маршрутам, сервисам и ресурсам
  • Обмен информацией: Безопасная передача информации между сторонами с проверкой подписи
  • Единый вход (SSO): Широко используется для функций SSO благодаря небольшим накладным расходам и междоменной способности
  • Авторизация API: Аутентификация без состояния для RESTful API
  • OAuth 2.0 и OpenID Connect: Основной компонент современных протоколов аутентификации

Примечание по безопасности: Токены JWT подписываются для проверки подлинности, но не шифруются по умолчанию. Не храните конфиденциальную информацию в полезной нагрузке, если она не зашифрована отдельно. Всегда используйте HTTPS для передачи токенов. Храните токены безопасно (например, httpOnly cookies для веб-приложений). Внедряйте правильные механизмы истечения и обновления токенов. Никогда не раскрывайте свой секретный ключ в коде клиентской стороны.

Справочные материалы