Decodificador de Token JWT

Decodifique tokens JWT (JSON Web Token) diretamente no navegador. Visualize o header, payload e datas de expiração. Processamento 100% local, nenhum token é enviado para servidor.

Revisão técnica: Cesar Gargiulo (segurança da informação)
Valim, o mascote do ValorFinal, representando a categoria Tecnologia

Esta ferramenta apenas decodifica o JWT, não valida a assinatura.

Evite colar tokens reais de produção, tokens com dados sensíveis ou credenciais ativas. O processamento é local no navegador; nenhum dado é enviado para servidor.

Limite: 10.000 caracteres

Gostou? Mostre pra todo mundo

Gere um card bonito com a marca do ValorFinal para postar nos Stories ou mandar no WhatsApp. Nada que você digitou aparece no card.

Coloque no seu site

O token é separado nos três trechos entre pontos. O cabeçalho e o payload são decodificados de Base64URL para JSON e exibidos como estão; os campos de tempo (exp, iat e nbf) são lidos como segundos, conforme o RFC 7519. A terceira parte, a assinatura, não é conferida: decodificar não é validar.

Como funciona este decodificador de JWT

Base64URL é codificação, não criptografia. Qualquer pessoa que tenha o token consegue ler o payload, inclusive quem o forjou. É por isso que a conclusão desta página é sempre sobre as DATAS declaradas no token, e nunca sobre autenticidade: para saber se o conteúdo é confiável, o seu servidor precisa recalcular a assinatura com a chave do emissor (segredo compartilhado em HS256, chave pública em RS256 e ES256).

As três claims de tempo do RFC 7519 são NumericDate, ou seja, um número de segundos desde 1970-01-01T00:00:00Z. exp é o instante a partir do qual o token deve ser recusado, nbf é o instante antes do qual ele ainda não vale, e iat registra quando foi emitido. Valor fora desse padrão (texto, número negativo ou um número grande demais para ser segundos, sinal de que o emissor usou milissegundos) vira aviso e fica de fora da conclusão, em vez de ser ignorado em silêncio.

O token não é guardado, não vai para servidor nenhum e não aparece em histórico: a leitura acontece na memória da aba. Ainda assim, prefira tokens de desenvolvimento. Para conferir codificações relacionadas, veja a calculadora Base64 e as ferramentas DevOps.

Fórmula

JWT = base64url(header) + "." + base64url(payload) + "." + assinatura

expirado quando agora > exp · ainda não vale quando agora < nbf

agora e as claims de tempo em SEGUNDOS desde 1970-01-01T00:00:00Z

Base: RFC 7519 (JSON Web Token) e RFC 7515 (JSON Web Signature). Leitura local no navegador, sem envio do token.

Limitações

  • Não valida a assinatura. Um token adulterado, com a assinatura trocada ou com alg: none, é decodificado normalmente. Nada aqui prova autenticidade.
  • A conclusão de prazo usa o relógio do seu computador. Relógio desacertado muda o resultado, e servidores normalmente aceitam alguns segundos de tolerância que esta página não aplica.
  • Não confere emissor (iss), destinatário (aud), escopo nem revogação: um token dentro do prazo pode já ter sido invalidado no servidor.
  • Trata apenas JWS compacto (três partes). Token criptografado (JWE, com cinco partes) não é decodificado.

Guia completo

O que é JWT: header, payload, assinatura e segurança

Entenda o que é um JWT, as três partes (header, payload e assinatura), a diferença essencial entre decodificar e validar um token, os principais riscos de segurança e por que não colar tokens sensíveis em ferramentas online.

Coloque a calculadora de JWT Decoder no seu site, de graça

Tem site, blog ou loja virtual? Esta calculadora tem uma versão para incorporar: você copia um código e cola no seu HTML. Sem cadastro, sem mensalidade e sem limite de acessos, e o cálculo acompanha a regra vigente sozinho.

calculadora de JWT Decoder para sitever todas as calculadoras para site

Calculadoras relacionadas

Guias sobre este tema

ValorFinal VIP: Sem anúncios, até 500 cenários salvos e comparação de cenários lado a lado.

Cálculo auditável, com fórmula e fontes transparentes

Atualizado em . Fontes: RFC 7519 / IETF / MDN Web Docs.

Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.

Como validamos

Referências técnicas

Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.

Incorpore esta calculadora no seu site (grátis)

Copie e cole o código no seu site. A calculadora se atualiza sozinha. O crédito ao ValorFinal vem junto do código e a gente agradece quem mantém, mas ele é opcional: pode remover sem perder o widget. O link sai com rel="nofollow", ou seja, não transfere autoridade de busca para a gente.

Perguntas frequentes

O que é um JWT (JSON Web Token)?

JWT (JSON Web Token) é um padrão aberto (RFC 7519) para transmitir informações de forma compacta e segura entre partes como um objeto JSON. É composto por três partes separadas por pontos: Header (cabeçalho com algoritmo e tipo), Payload (dados/claims) e Signature (assinatura). É amplamente usado para autenticação e autorização em APIs.

Esta ferramenta valida a assinatura do JWT?

Não. Esta ferramenta apenas decodifica o header e o payload do JWT, não valida a assinatura. Para validar a assinatura, seria necessário ter a chave secreta (para HMAC) ou a chave pública (para RSA/ECDSA) usada pelo servidor emissor. Nunca confie em um JWT apenas porque ele pode ser decodificado, sempre valide a assinatura no servidor.

É seguro colar meu JWT nesta ferramenta?

O processamento é 100% local no navegador, nenhum token é enviado para servidores. Porém, recomendamos evitar colar tokens de produção ativos, especialmente tokens com dados sensíveis, credenciais ativas ou tokens de longa duração. Prefira testar com tokens de desenvolvimento ou tokens já expirados.

O que significam os campos exp, iat e nbf no JWT?

São claims de tempo padronizadas pelo RFC 7519: exp (Expiration Time) define quando o token expira e não deve mais ser aceito; iat (Issued At) indica quando o token foi emitido; nbf (Not Before) indica a partir de quando o token pode ser usado. Todos são representados como NumericDate, ou seja, segundos desde 1970-01-01T00:00:00Z. Um token com nbf no futuro ainda não vale, mesmo que o exp esteja longe: a página trata esse caso como token que ainda não entrou em vigor, e não como token dentro do prazo.

Por que meu token mostra o ano 58671 na data de expiração?

Porque o valor foi gravado em milissegundos, e o RFC 7519 exige segundos. É o erro clássico de usar Date.now() em JavaScript sem dividir por 1000: 1.767.225.600.000 segundos dá um ano de cinco dígitos. Isso é um defeito de quem emitiu o token, não da sua leitura. Quando o valor passa de 100 bilhões (que já seria o ano 5138), esta página avisa que o campo provavelmente está em milissegundos, mostra a data na leitura correta e não conclui nada sobre o prazo com esse campo, em vez de anunciar o token como válido por mais 56 mil anos.

Decodificar o token é a mesma coisa que validar o token?

Não, e confundir as duas coisas é uma das causas mais comuns de falha de autorização. Decodificar é desfazer o Base64URL, que é codificação e não criptografia: qualquer pessoa com o token consegue ler o payload, inclusive quem inventou o conteúdo. Validar é recalcular a assinatura com a chave do emissor e conferir se bate, e isso só o servidor que tem a chave consegue fazer. Esta página só decodifica. Quando ela diz que as datas estão dentro do prazo, isso significa apenas que exp e nbf estão coerentes com o relógio, sem nenhuma afirmação sobre autenticidade.

Quais algoritmos de assinatura JWT existem?

Os principais são: HS256/HS384/HS512 (HMAC com SHA-2, chave simétrica compartilhada), RS256/RS384/RS512 (RSA com SHA-2, par de chaves pública/privada), ES256/ES384/ES512 (ECDSA, criptografia de curva elíptica) e PS256/PS384/PS512 (RSA-PSS). O algoritmo 'none' não usa assinatura e deve ser rejeitado por servidores em produção.

O que é Base64URL, diferente de Base64 normal?

Base64URL é uma variante do Base64 que substitui '+' por '-' e '/' por '_', e omite o padding '='. Essa variante é necessária porque '+', '/' e '=' têm significados especiais em URLs e parâmetros de query string. O JWT usa Base64URL para codificar o header e o payload, tornando o token seguro para uso em URLs.