Codificação
JWT Encoder/Decoder
Codificação e decodificação de tokens JWT — cabeçalho, payload, assinatura HMAC e campos padrão.
Exemplos assinados (todos exceto none) exigem HTTPS — a página está aberta sem HTTPS no momento.
Para RS/PS/ES, a chave é gerada automática e temporariamente — apenas para demonstração, não pode ser reutilizada.
Exemplos assinados (todos exceto none) exigem HTTPS — a página está aberta sem HTTPS no momento.
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.
Artigo sobre esta ferramenta: JWT: a estrutura do token e o que significa "decodificar" um JWT
Perguntas frequentes
Decodificar um JWT verifica sua assinatura?
Não. A decodificação apenas faz o base64url-decode do cabeçalho e do payload para você ler as claims — isso não prova que o token é autêntico. Para verificar a assinatura de fato, você precisa inserir aqui a chave secreta ou pública correta.
É seguro colar um JWT real nesta ferramenta?
A decodificação e assinatura acontecem inteiramente no seu navegador — o token e qualquer segredo que você inserir nunca são enviados a um servidor. Ainda assim, trate tokens de sistemas em produção com cuidado, já que qualquer pessoa que veja um JWT decodificado pode ler suas claims.
Por que meu token aparece como expirado mesmo funcionando no meu app?
O indicador Expirado/Válido aqui apenas compara a claim exp com a hora atual — não verifica tolerâncias de diferença de relógio nem outras regras de validação que seu servidor ou biblioteca possam aplicar.
O que é o ataque de troca de algoritmo para "none"?
Se o backend confia ingenuamente no campo alg do cabeçalho do token, um atacante pode trocá-lo por none, remover a assinatura — e um token com dados arbitrários passa na verificação. Bibliotecas robustas exigem que o algoritmo esperado seja informado explicitamente na verificação.
Por que não devo guardar um JWT no localStorage para sessões sensíveis?
O localStorage é acessível a qualquer código JavaScript da página, por isso é vulnerável a XSS — um script malicioso pode roubar o token. Para tokens de sessão, é mais seguro usar cookies httpOnly, inacessíveis ao JavaScript.