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.

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.
Em resumo
O decodificador separa o token nos 3 trechos entre os pontos, converte o cabeçalho e o payload de Base64URL para JSON e mostra as datas exp, iat e nbf no horário de Brasília. A assinatura não é conferida, porque isso exige a chave de quem emitiu o token: o segredo, no HS256, ou a chave pública, no RS256. Pela RFC 7519, de maio de 2015, essas datas contam segundos desde 1º de janeiro de 1970, em UTC.
Quem grava a data em milissegundos, erro comum de quem usa Date.now() no JavaScript, produz datas absurdas. Por isso a página desconfia de qualquer valor a partir de 100.000.000.000, que em segundos já cairia no ano 5138, e não usa esse campo para dizer se o token venceu. No token de exemplo, o exp vem 3.600 segundos depois do iat, ou seja, 1 hora. O campo aceita até 10.000 caracteres, e o token não sai do navegador.
Outras ferramentas de segurança e identidade
- Gerador de SenhaSorteie uma senha forte, ou uma frase-senha de palavras em português que dá para decorar, e descubra por que uma senha parece segura e não é. Nada é salvo nem enviado.
- Gerador de hash SHAGere hash criptográfico SHA-1, SHA-256, SHA-384 ou SHA-512 de qualquer texto. Verifique integridade comparando com hash esperado. Usa Web Crypto API, 100% local, sem envio de dados.
- Hash de arquivoCalcule o SHA-256 de um arquivo no próprio navegador e compare com o hash publicado pelo autor do download. Sem upload, sem cadastro, com o comando equivalente para Linux, macOS e Windows.
- Gerador de UUIDGere UUIDs v4 localmente usando a Web Crypto API. Valide UUIDs informados e identifique a versão e variante. Processamento 100% local, nenhum UUID é enviado para servidor.
- Teste de velocidadeMeça download, upload, ping, jitter e a latência com a rede cheia. Veja se a conexão aguenta chamada de vídeo, 4K e jogo online, e quanto do plano contratado chegou.
- Cronômetro onlineCronômetro online com centésimos e voltas: parcial, total, a volta mais rápida e a mais lenta, cópia para planilha e CSV, tela cheia e atalhos de teclado. Mede pelo relógio interno do navegador e não atrasa com a aba em segundo plano.
Todas as ferramentas, por tarefa, estão em ferramentas de tecnologia online.
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.
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.
Método
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.
JWT é criptografado? Não, só assinado
Não. O JWT comum é assinado, e a assinatura denuncia quem altera o conteúdo, mas não impede ninguém de ler. Qualquer pessoa com o token lê o cabeçalho e o payload sem chave nenhuma, e dá para conferir por quatro caminhos:
- O token de exemplo desta página abre sem chave. Ele tem 222 caracteres em 3 trechos, e o do meio vira um JSON com 5 campos legíveis, entre eles o sub
usuario-de-exemploe o exp1700003600(14/11/2023, 20:13:20, no horário de Brasília). A ferramenta não pede senha nem chave porque não precisa de nenhuma. - Base64URL reescreve os bytes num alfabeto de 64 símbolos e não embaralha nada. A cada 3 bytes saem 4 caracteres, por isso os 27 caracteres de
{"alg":"HS256","typ":"JWT"}viram os 36 do primeiro trecho. A conversão está na RFC 4648, não recebe chave e volta ao texto original em qualquer linguagem. - O HS256 do exemplo é HMAC com SHA-256, definido na RFC 7518: um código de autenticação calculado com uma chave secreta sobre o cabeçalho e o payload. Mudar uma letra do payload invalida a assinatura, e mesmo assim o payload continua legível para quem tem o token.
- O JWT cifrado existe e tem outra forma. É o JWE, da RFC 7516, com 5 trechos separados por ponto: cabeçalho, chave cifrada, vetor de inicialização, texto cifrado e etiqueta de autenticação. O token comum tem 3, e esta página recusa o de 5, porque o conteúdo dele só se lê com a chave.
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.
Coloque esta ferramenta no seu site, de graça
Tem site, blog ou loja virtual? Esta ferramenta 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 ela roda no navegador de quem visita o seu site.
Decodificador de JWT para sitever todas as ferramentas para site
Calculadoras relacionadas
Guias sobre este tema
O que é JSON
Entenda o que é JSON, os tipos de dados (objeto, array, string, número, boolean e null), a diferença entre JSON válido e objeto JavaScript, os erros de sintaxe mais comuns e por que validar antes de usar em uma API.
O que é ARN AWS
Entenda o que é um ARN na AWS, como interpretar partition, service, region, account ID e resource, com exemplos de S3, IAM, Lambda, CloudWatch e KMS, e os cuidados ao copiar ARNs.
Como criar senha forte
Aprenda o que torna uma senha forte, por que o tamanho costuma importar mais que a complexidade confusa, o que é entropia, quando usar frase-senha e como evitar padrões fracos e a reutilização de senhas.
Ferramenta transparente, com o método explicado
Atualizado em . Fontes: RFC 7519 / IETF / MDN Web Docs.
Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.
Referências técnicas
- RFC 7519 - JSON Web Token (JWT)Técnica
- RFC 7515 - JSON Web Signature (JWS)Técnica
- RFC 7518 - JSON Web Algorithms (JWA)Técnica
- RFC 4648 - The Base16, Base32, and Base64 Data EncodingsTécnica
- MDN Web Docs - atob()Técnica
- RFC 7519, seção 2 (NumericDate)Técnica
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 verificável 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.
Como decodificar um token JWT?
Cole o token inteiro no campo "Token JWT" e clique em "Decodificar JWT". A página separa os três trechos pelos pontos, converte o cabeçalho e o payload de Base64URL para JSON e mostra o algoritmo, o tipo, as datas e o payload completo. Para fazer à mão, pegue o trecho do meio, troque - por + e _ por /, complete com = até o tamanho ser múltiplo de 4 e decodifique como Base64 comum. Sai o mesmo JSON, porque nenhuma chave entra nessa conta.
Como saber se um JWT está expirado?
Olhe o campo exp do payload. Ele marca, em segundos desde 1º de janeiro de 1970 (UTC), o instante a partir do qual o token deve ser recusado; se o relógio já passou desse número, o token venceu. Esta página faz a conta com o relógio do seu computador, mostra a data no horário de Brasília e confere também o nbf, que marca quando o token começa a valer. Quem decide de verdade é o servidor: ele pode aceitar uma pequena folga para relógio desacertado (a RFC 7519 fala em poucos minutos, no máximo) e pode recusar um token revogado antes do exp.
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. Um token de acesso dentro do prazo vale como credencial até o exp: quem tiver uma cópia dele faz pedidos em nome do usuário sem saber a senha.
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. Um exp de 13/09/2026 gravado assim vira 1.789.322.083.000, e esse número lido como segundos cai no ano 58671. O defeito é de quem emitiu o token, e não da sua leitura. Quando o valor chega a 100.000.000.000, que em segundos 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.
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. Todos esses nomes estão registrados na RFC 7518, a especificação dos algoritmos do JWT, que também define o none.
O que são alg e typ no cabeçalho do JWT?
São os dois campos que a página mostra no quadro "Cabeçalho (Header)". O alg diz qual algoritmo assinou o token: HS256 é HMAC com SHA-256 e uma chave compartilhada, RS256 é RSA com SHA-256 e um par de chaves, ES256 usa curva elíptica. O typ costuma valer JWT e só declara o tipo do objeto. Quando o alg vem como none, o token não tem assinatura nenhuma, e um servidor bem configurado recusa esse token. Se o campo não existir, a página escreve "não informado".
O que significa "Não foi possível concluir o prazo pelas datas do token"?
É a faixa cinza que aparece quando o token traz exp ou nbf, mas o valor não serve para a conta. Acontece com data escrita como texto, com número negativo e com data em milissegundos, que aparece como um valor de 100.000.000.000 para cima. Em vez de pintar de verde um token com data no ano 58671, a página explica o defeito na caixa "Problemas nos campos de data deste token" e deixa o prazo em aberto. A correção é no serviço que emite o token, gravando o valor em segundos.
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.