Кодировщик/Декодер JWT
Безопасное декодирование, проверка и генерация JWT-токенов
Декодированный JWT
Заголовок
Полезная нагрузка
Подпись
Заголовок
Полезная нагрузка
Введите данные полезной нагрузки в формате JSON
Секретный ключ
Этот секрет используется для подписи JWT. Храните его в безопасности!
Сгенерированный JWT
Полное руководство по JSON Web Tokens (JWT)
Что такое JWT?
JSON Web Token (JWT) — это открытый стандарт (RFC 7519), определяющий компактный и автономный способ безопасной передачи информации между сторонами в виде объекта JSON. Эта информация может быть проверена и ей можно доверять, так как она имеет цифровую подпись.
Структура JWT
JWT технически состоит из трех частей, разделенных точками (.):
- Заголовок (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 — асимметричный (пара ключей).
Связанные инструменты
Base64 Кодировщик/Декодер
Быстрое кодирование и декодирование Base64 строк с поддержкой текста и файлов
HMAC Генератор
Генерация HMAC кодов аутентификации с алгоритмами MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 и RIPEMD-160
Калькулятор дат
Вычисление дней между датами, добавление/вычитание дней, вычисление возраста и подсчет рабочих дней
JSON Форматтер
Форматирование и валидация JSON данных для улучшения читаемости и отладки
SHA Генератор хешей
Онлайн-генератор SHA хешей с поддержкой алгоритмов SHA-1, SHA-256, SHA-384, SHA-512
RSA Шифрование/Дешифрование
Использование асимметричного шифрования RSA для шифрования открытым ключом, дешифрования закрытым ключом, цифровой подписи и проверки