Decodificador de JWT online
Cole um token JWT abaixo para visualizar o header e o payload formatados, além das datas de expiração e emissão convertidas para um formato legível. O processamento é 100% no navegador.
Esta ferramenta decodifica apenas — ela não verifica a assinatura do token. A validação da assinatura deve sempre ser feita no servidor com a chave secreta.
O que é um JWT?
Um JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações de forma compacta e autocontida entre duas partes, geralmente entre um servidor de autenticação e uma aplicação. É amplamente usado em autenticação de APIs e sistemas de login (OAuth 2.0, OpenID Connect).
Estrutura de um JWT
Um JWT é formado por três partes separadas por ponto (.):
xxxxx.yyyyy.zzzzz
header.payload.signatureCada parte é codificada em Base64URL:
- Header — metadados sobre o token, como o algoritmo de assinatura (
alg) e o tipo (typ) - Payload — os dados (claims), como ID do usuário, permissões e datas
- Signature — garante que o token não foi alterado; gerada com uma chave secreta
Claims comuns no payload
| Claim | Significado |
|---|---|
iss | Emissor (issuer) do token |
sub | Sujeito (subject), normalmente o ID do usuário |
aud | Destinatário (audience) do token |
exp | Data/hora de expiração (timestamp Unix) |
iat | Data/hora de emissão (issued at) |
nbf | Não válido antes de (not before) |
As datas (exp, iat, nbf) são números no formato timestamp Unix em segundos. Esta ferramenta as converte automaticamente para o horário local legível.
Decodificar não é verificar
É fundamental entender a diferença:
- Decodificar um JWT apenas converte o Base64URL de volta em texto. Qualquer pessoa pode ler o conteúdo de um JWT — o payload não é criptografado.
- Verificar um JWT consiste em recalcular a assinatura usando a chave secreta e compará-la com a assinatura do token. Só assim se garante que o token é autêntico e não foi adulterado.
Por isso, nunca coloque dados sensíveis (senhas, números de cartão) no payload de um JWT, e sempre verifique a assinatura no servidor antes de confiar nos dados.
Algoritmos de assinatura
- HS256 (HMAC + SHA-256) — usa uma chave secreta compartilhada
- RS256 (RSA + SHA-256) — usa par de chaves pública/privada
- ES256 (ECDSA + SHA-256) — baseado em curvas elípticas
Perguntas frequentes
O conteúdo de um JWT é criptografado?
Não. O header e o payload são apenas codificados em Base64URL, não criptografados. Qualquer pessoa com o token pode ler seu conteúdo. A assinatura serve para verificar a integridade, não para esconder dados.
Por que minha assinatura não aparece decodificada?
A assinatura é um valor binário gerado por HMAC ou criptografia assimétrica — ela não representa texto legível. Esta ferramenta a exibe como está (Base64URL), pois só faz sentido validá-la com a chave secreta no servidor.
Esta ferramenta valida se o token expirou?
Ela exibe a data de expiração (exp) convertida para um formato legível, permitindo que você verifique manualmente. A validação automática de expiração e assinatura deve ser feita pela sua aplicação no servidor.
É seguro colar meu token aqui?
Todo o processamento acontece no seu navegador (JavaScript local) — nenhum dado é enviado a servidores. Ainda assim, evite colar tokens de produção válidos em qualquer ferramenta online por precaução.