Кодирование
JWT Encoder/Decoder
Кодирование и декодирование JWT-токена — заголовок, полезная нагрузка, подпись HMAC и стандартные поля.
Подписанные примеры (все, кроме none) требуют HTTPS — сейчас страница открыта без HTTPS.
Для RS/PS/ES ключ генерируется автоматически и временно — только для демонстрации, повторно использовать его нельзя.
Подписанные примеры (все, кроме none) требуют HTTPS — сейчас страница открыта без HTTPS.
Claims
A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.
Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.
How to use it
- Decode: paste a JWT and the tool splits it into header, payload, and signature, highlighting standard claims like exp, iat, and sub.
- Encode: fill in the header and payload, provide a secret, and get a signed HMAC token (HS256/HS384/HS512) back.
- Check expiry: the exp claim is shown as a normal date, so you can immediately tell if a token has expired.
Common uses
- Debugging authentication issues by inspecting exactly what a request's token contains.
- Checking which claims (roles, permissions, expiry) your backend issues.
- Generating a test token for local development without running an auth server.
Things to keep in mind
A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.
The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.
Статья об этом инструменте: JWT: структура токена и что значит «декодировать» JWT
Часто задаваемые вопросы
Декодирование JWT проверяет подпись токена?
Нет. Без секрета или ключа декодирование лишь показывает содержимое Header и Payload — это просто Base64URL-данные, доступные всем. Подтвердить, что токен подлинный и не изменён, можно только проверив подпись с правильным ключом.
Значит ли это, что данные в JWT можно спрятать от пользователя?
Нет, Payload не шифруется, а лишь кодируется, поэтому любой человек с токеном может прочитать claims. Секретные данные в JWT класть не стоит — подпись гарантирует только целостность, а не конфиденциальность.
Секрет и ключи, введённые в инструмент, куда-то отправляются?
Нет, кодирование, декодирование и генерация подписи выполняются полностью в браузере — секрет и ключи никуда не передаются.
Что такое атака с подменой алгоритма на "none"?
Если бекенд наивно доверяет полю alg из заголовка токена, злоумышленник может заменить его на none, убрать подпись — и токен с произвольными данными пройдёт проверку. Надёжные библиотеки требуют явно задавать ожидаемый алгоритм при верификации.
Почему не стоит хранить JWT в localStorage для чувствительных сессий?
localStorage доступен любому JavaScript-коду на странице, поэтому уязвим к XSS — вредоносный скрипт может украсть токен. Для сессионных токенов безопаснее использовать httpOnly-cookie, недоступные для JavaScript.