CoderTools

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

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

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

Заголовок


                        

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


                        

Подпись


                        

Полное руководство по JSON Web Tokens (JWT)

Что такое JWT?

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

Структура JWT

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

xxxxx.yyyyy.zzzzz
  • Заголовок (Header) : Состоит из типа токена (JWT) и алгоритма подписи (например, HMAC SHA256 или RSA).
  • Нагрузка (Payload) : Содержит утверждения (claims). Claims — это заявления об объекте (обычно пользователе) и дополнительные данные.
  • Подпись (Signature) : Для создания подписи нужно взять закодированный заголовок, закодированную нагрузку, секрет и подписать их. Подпись используется для проверки целостности сообщения.

Поддерживаемые алгоритмы

Этот инструмент поддерживает декодирование и проверку для всех стандартов:

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

Понимание JWT Claims

Стандартные зарегистрированные claims включают:

  • iss (Issuer): iss (Издатель)
  • sub (Subject): sub (Субъект/Пользователь)
  • aud (Audience): aud (Аудитория)
  • exp (Expiration Time): exp (Срок действия)
  • nbf (Not Before): nbf (Не раньше)
  • iat (Issued At): iat (Время выдачи)
  • jti (JWT ID): jti (ID токена)

Когда использовать JWT?

  • Авторизация: Самый частый сценарий. После входа каждый запрос включает JWT для доступа к ресурсам.
  • Обмен информацией: Безопасная передача данных с проверкой отправителя.
  • Сессии без состояния: JWT содержат все данные пользователя, снижая нагрузку на БД.
  • SSO между доменами: Идеально для единого входа (Single Sign-On).
  • Безопасность API: Защита RESTful API.

Лучшие практики безопасности: 1. Не помещайте конфиденциальные данные в payload. 2. Всегда проверяйте подпись. 3. Используйте 'exp'. 4. Используйте HTTPS. 5. Безопасно храните токены (HttpOnly Cookies лучше LocalStorage).

Ссылки

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

JWT — это шифрование или кодирование?

Стандартные JWT закодированы и подписаны, НО НЕ зашифрованы. Payload читаем для всех (Base64Url). Подпись защищает от изменений, но не скрывает данные.

Где хранить JWT на клиенте?

Cookie `HttpOnly` обычно безопаснее `localStorage` из-за защиты от XSS.

Что если JWT украдут?

Злоумышленник может выдавать себя за пользователя до истечения срока действия токена. Используйте короткий срок жизни.

Этот инструмент отправляет мои ключи на сервер?

Нет. Всё работает в вашем браузере через JavaScript.

Могу ли я вручную изменить payload?

Можете, но подпись станет недействительной. Сервер отвергнет токен.

Разница между HS256 и RS256?

HS256 — симметричный (общий ключ). RS256 — асимметричный (пара ключей).

Быстрое меню

Нет недавних инструментов