Como decodificar JWT online (com segurança) e o que cada campo significa
Guia técnico para devs: como decodificar JWT, entender header/payload/signature, validar expiração e debugar autenticação sem expor tokens em servidores externos.
JWT (JSON Web Token) é o padrão de autenticação stateless mais usado em 2026. Toda chamada autenticada de API moderna provavelmente carrega um JWT no header `Authorization: Bearer <token>`. Quando algo dá errado (401, 403, claim faltando), você precisa decodificar o token para debug. Mas decodificar JWT em ferramenta online tem um risco: tokens podem conter dados sensíveis. Este guia mostra como fazer com segurança.
Estrutura de um JWT
Um JWT tem 3 partes separadas por ponto: `xxxxx.yyyyy.zzzzz`. Cada parte é Base64URL-encoded:
- Header (xxxxx): metadados do token — algoritmo de assinatura (alg) e tipo (typ, sempre 'JWT').
- Payload (yyyyy): claims (afirmações) sobre o sujeito. Pode incluir user ID, roles, expiração, custom data.
- Signature (zzzzz): assinatura criptográfica que valida que header e payload não foram adulterados.
Decodificar vs validar — diferença CRÍTICA
Decodificar é trivial — qualquer pessoa pode fazer. Header e payload são apenas Base64-encoded (não criptografado!). Cole o JWT em qualquer ferramenta de Base64 e você vê o conteúdo.
Validar requer a chave (secret se HMAC, chave pública se RSA/ECDSA). É a única forma de saber se o token é AUTÊNTICO. Sem validação, qualquer pessoa pode fabricar um JWT com qualquer payload — seu sistema NÃO PODE confiar em JWT decodificado sem validação assinatura.
Ferramentas online (incluindo o JWT Decoder do Quorify) só decodificam — não validam. Validação acontece no SEU backend, com a chave que só você tem.
Claims padrão (RFC 7519) que você precisa conhecer
JWT define claims padrão (campos no payload). Os mais importantes:
- iss (Issuer): quem emitiu o token (ex: 'https://accounts.google.com').
- sub (Subject): identificador do usuário (ex: 'user_12345').
- aud (Audience): para quem o token é destinado (ex: 'api.exemplo.com').
- exp (Expiration time): timestamp Unix de quando expira. Se passou, token é inválido.
- iat (Issued at): timestamp Unix de quando foi emitido.
- nbf (Not before): timestamp Unix antes do qual o token NÃO é válido.
- jti (JWT ID): identificador único do token (útil para revogação).
Algoritmos de assinatura: HS256 vs RS256
HS256 (HMAC-SHA256): chave simétrica — mesma chave para assinar e validar. Mais rápido, mais simples. Use quando o emissor e validador são o mesmo sistema (monolitos, microservices internos).
RS256 (RSA-SHA256): chave assimétrica — chave privada para assinar (só o emissor tem), chave pública para validar (compartilhada). Use quando múltiplos sistemas validam tokens (OAuth providers como Google, Auth0, Cognito usam RS256).
ES256 (ECDSA-SHA256): variante mais moderna do RS256 com curvas elípticas. Tokens menores (chave EC é mais compacta que RSA). Recomendado para novos sistemas em 2026.
none: indica que NÃO há assinatura. SEMPRE rejeite tokens com `alg: none` no seu backend — é um vetor de ataque conhecido (CVE-2015-9235).
É seguro decodificar JWT em ferramenta online?
Depende da ferramenta. Se a ferramenta envia o JWT para servidor para decodificar, há risco — alguém na empresa da ferramenta pode logar o token, ou o servidor pode ser comprometido.
Se a ferramenta decodifica executado no navegador (JavaScript local), o risco é mínimo — você pode validar no DevTools (F12 > Network) que nenhuma requisição com seu JWT sai.
O JWT Decoder do Quorify decodifica processado localmente. Você pode até desligar a internet após carregar a página e a ferramenta continua funcionando. Para tokens de produção com dados muito sensíveis, prefira ainda assim ferramenta CLI (jwt.io desktop ou `node -e 'console.log(JSON.parse(Buffer.from("eyJ...".split(".")[1],"base64").toString()))'`).
Cenários comuns de debug
Token expirou: olhe `exp` no payload. Compare com `Date.now()/1000`. Se exp < now, expirou.
Audience errada: compare `aud` no payload com o que sua API espera. Se diferente, sua API rejeita corretamente.
Issuer errado: compare `iss` no payload com o issuer esperado. Útil em sistemas com múltiplos providers.
Assinatura inválida (mas decodifica): header e payload OK, mas signature não bate. Significa que o token foi gerado com chave diferente OU foi adulterado. Sua API DEVE rejeitar.
Algoritmo inesperado: olhe `alg` no header. Se sua API espera RS256 mas recebeu HS256, há tentativa de attack — sua API DEVE rejeitar.
Conclusão
Decodificar JWT é debug essencial em desenvolvimento de auth. Use ferramenta que processe localmente (como o JWT Decoder do Quorify) para evitar exposição de tokens. Lembre: decodificar ≠ validar — validação real acontece no SEU backend com a chave correta. Para tokens de produção muito sensíveis, prefira CLI ou desktop (zero rede envolvida). Para outras operações de debug auth, considere o Codificador Base64 e o Gerador de Hash.
Use a ferramenta agora
Decodificador JWT
Inspecione e debuge o payload de tokens JWT (JSON Web Tokens).
Abrir Decodificador JWTFerramentas relacionadas