0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Настройка
Генерируйте и декодируйте JSON Web Tokens (JWT) с алгоритмами HS256, HS384, HS512, RS256 и RS512. В режиме Генерировать, заполните JSON-пауку и секретный ключ для создания токена. В режиме Читать, вставьте существующий токен для проверки его заголовка, пауки и проверки подписи.

HMAC с SHA-256. Общая симметричная ключ. Рекомендуется для общего использования.

Секретный ключ
Вход

Как это работает

JSON Web Token (JWT) — компактный подписанный токен, переносящий информацию (claims) между двумя сторонами. Он состоит из трёх частей, разделённых точками —заголовок, полезная нагрузка и подпись—, каждая закодирована в Base64URL.

В режиме «Создать» вы задаёте заголовок и полезную нагрузку в JSON и подписываете секретным ключом (HMAC) или закрытым ключом (RSA/ECDSA). В режиме «Читать» вы вставляете существующий токен, чтобы изучить его содержимое и проверить подпись.

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

Примеры

header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
tokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cПодпись (третья часть) зависит от алгоритма и ключа; в этом примере используется HS256 с ключом "your-256-bit-secret".

Сценарии использования

  • Аутентифицировать пользователей в API: сервер выдаёт подписанный токен и проверяет его при каждом запросе, не храня сессию.
  • Изучать и отлаживать токены аутентификации, чтобы увидеть их claims (sub, exp, роли) и даты.
  • Проверить подпись токена секретным или открытым ключом, чтобы убедиться, что он не был подделан.
  • Генерировать тестовые токены с разными алгоритмами (HMAC, RSA, ECDSA) при разработке процесса аутентификации.

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

Зашифровано ли содержимое JWT?

Нет. Заголовок и полезная нагрузка лишь закодированы в Base64URL, что любой может декодировать. Подпись гарантирует целостность (что не изменялось), а не конфиденциальность.

В чём разница между HS256 и RS256?

HS256 использует один общий секретный ключ для подписи и проверки (HMAC). RS256 асимметричен: подписывает закрытым ключом и проверяет открытым, что идеально, когда многим сервисам нужно проверять без возможности выпускать токены.

Что означают claims iat, exp и nbf?

Это стандартные метки времени: iat (когда выпущен), exp (когда истекает) и nbf (недействителен до). Выражаются в секундах с 1970 года (эпоха Unix).

Почему алгоритм "none" не рекомендуется?

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

Отправляется ли мой токен на сервер?

Нет. Создание, декодирование и проверка происходят полностью в браузере; токен и ключи никогда не покидают ваше устройство.