Decodificador JWT: Decodifique e Verifique Tokens Sem Comprometer a Segurança
Vamos falar sobre tokens JWT.
Se você trabalhou com qualquer aplicativo web moderno nos últimos 5 anos, já lidou com eles. Fluxos de autenticação, chaves de API, tokens de sessão, eles estão em toda parte.
Mas tem um detalhe: muitos desenvolvedores usam JWTs sem realmente entender o que há dentro de um. E pior, alguns colam tokens de produção em sites aleatórios de "depurador JWT" que podem ou não registrá-los.
Neste guia, mostrarei o que um decodificador JWT realmente faz, como usar um com segurança e a ferramenta gratuita que eu pessoalmente uso e que roda 100% no navegador.
O que realmente está em um JWT#
Um JSON Web Token tem três partes, separadas por pontos:
header.payload.assinatura
Por exemplo:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE2MjYxMjM0NTZ9.abc123def456...
Isso não está criptografado. É apenas codificado em base64.
O cabeçalho do JWT informa qual algoritmo assinou o token (geralmente HS256 ou RS256).
A carga útil do JWT contém as declarações reais (id do usuário, tempo de expiração, escopos, etc.).
A assinatura do JWT é a prova criptográfica de que o token não foi adulterado.
Qualquer pessoa com o token pode ler o cabeçalho e a carga útil. A assinatura é o que está protegido.
Por que você nunca deve colar tokens em sites suspeitos#
Este é um aviso de segurança.
Se você colar um JWT em uma ferramenta que o envia para um servidor (em vez de decodificá-lo localmente), você acabou de vazar seu token. O operador do site pode:
- Roubar sua sessão
- Se passar pelo usuário
- Usar o token em seus próprios scripts
E muitos sites "decodificadores de JWT" fazem exatamente isso. Eles enviam para um backend, "decodificam" e retornam o resultado. O servidor deles agora tem seu token em um arquivo de log.
A solução: use apenas decodificadores de JWT que rodam no navegador. O token nunca sai da sua máquina.
O decodificador JWT gratuito que eu uso#
Eu criei o Molixa JWT Decoder especificamente porque todo outro decodificador "gratuito" tinha anúncios ou enviava o token para um servidor.
O meu não faz isso.
Você cola um JWT. O decodificador usa JavaScript no seu navegador para dividir, decodificar em base64 e analisar o JSON. Pronto.
Nenhum analytics é acionado pelo token. Nenhuma viagem ao servidor. Nenhum registro.
Passo a passo: decodifique seu primeiro JWT#
Veja como funciona.
Passo 1: Pegue um JWT#
Do armazenamento local do seu app, DevTools do navegador ou resposta de uma API.
No Chrome DevTools, abra Application → Storage → Local Storage → procure por chaves como "access_token" ou "jwt."
Passo 2: Abra o decodificador#
Passo 3: Cole#
Uma grande área de texto no topo. Cole o token completo.
Passo 4: Leia a análise#
Você verá três painéis:
- Header, algoritmo, tipo, ID da chave
- Payload, as claims reais
- Signature, base64 (você não pode decodificar isso, apenas verificar)
Passo 5: Verifique as claims#
O payload é onde a ação acontece. Procure por:
sub, assunto (geralmente o ID do usuário)iat, emitido em (timestamp)exp, expira em (timestamp; converta para data)iss, emissor (qual serviço criou o token)aud, audiência (qual serviço pode usar o token)scope, permissões concedidas
Um inspetor de JWT que preste converte automaticamente os timestamps em datas legíveis.
Como verificar a assinatura de um JWT#
Decodificar mostra o conteúdo. A verificação comprova que o token é legítimo.
Para HS256 (simétrico)#
Você precisa da chave secreta compartilhada. Cole-a no painel de verificação. O decodificador calcula o hash do cabeçalho + payload com HMAC-SHA256, compara com a assinatura e informa "válido" ou "inválido".
Não armazene a chave secreta em nenhum lugar persistente. Ela é secreta por um motivo.
Para RS256 (assimétrico)#
Você precisa da chave pública (formato PEM). Cole-a. O decodificador verifica a assinatura usando a chave pública.
Chaves públicas são seguras para compartilhar, essa é a ideia.
Erros comuns com JWT#
Alguns que vejo o tempo todo:
Erro 1: Armazenar JWTs no localStorage. Vulnerável a XSS. Use cookies httpOnly para tokens de sessão.
Erro 2: Confiar no conteúdo decodificado. O payload é apenas base64. Qualquer um pode alterá-lo. Sempre verifique a assinatura no servidor.
Erro 3: Tempos de expiração longos. Tokens com exp de 30+ dias são arriscados. Use tokens de atualização para sessões longas e tokens de acesso de curta duração.
Erro 4: Colocar dados sensíveis no payload. O payload é legível para qualquer um com o token. Não coloque números de cartão de crédito, nomes completos ou qualquer coisa que você não queira registrada.
Erro 5: Colar tokens de produção em ferramentas que enviam para um servidor. Veja acima. Use decodificadores apenas no navegador.
Exemplo real: depurando um erro 401#
Na semana passada, minha API continuava retornando 401 para um usuário. Eles juravam que o token era válido.
Pedi para colarem o token no Molixa JWT Decoder.
O payload deles mostrava exp: 1715342400. Converti: isso era 3 horas atrás.
O token deles estava expirado. O fluxo de renovação havia falhado silenciosamente.
Tempo total de depuração: 90 segundos.
E o jwt.io?#
O decodificador JWT online mais famoso.
Prós: Padrão da indústria. Confiável por muitos. Contras: Tem anúncios. A interface não é atualizada há anos. Envia algumas análises sobre o uso do token (não o token em si, mas o suficiente para identificar padrões).
Molixa JWT Decoder é uma alternativa limpa e rápida para o uso diário.
Para a experiência oficial do jwt.io, acesse jwt.io. Para decodificação do dia a dia sem anúncios, o meu funciona.
Dicas profissionais#
Alguns hábitos que valem a pena adquirir:
Dica 1: Use o recurso de conversor de timestamp. JWTs usam epoch Unix; converta para datas legíveis.
Dica 2: Salve o decodificador nos favoritos. Você vai usá-lo mais do que imagina.
Dica 3: Sempre verifique iss e aud. Se não corresponderem ao que seu serviço espera, o token não é para você, rejeite-o.
Dica 4: Mantenha segredos de produção fora dos painéis de "verificação". Use uma ferramenta CLI local (como o jose-cli oficial) para fluxos de verificação em produção.
Dica 5: Para depurar tokens de aplicativos móveis, copie-os via Charles Proxy ou Proxyman e depois decodifique no navegador.
Alternativas modernas ao JWT#
Algumas notas para contexto:
PASETO, projetado para corrigir os problemas de design do JWT. Padrões melhores, sem ataques de confusão de algoritmo.
Branca, tokens pequenos e assinados. Menos comum, mas mais simples.
Tokens opacos, strings aleatórias que mapeiam para sessões no servidor. Algumas equipes estão retornando a eles por razões de segurança.
O JWT ainda é dominante. Saber como decodificar e verificar é o mínimo.
Conclusão#
Tokens JWT não são assustadores quando você entende a estrutura.
Cabeçalho. Payload. Assinatura.
Um bom decodificador JWT gratuito mostra todos os três, converte os timestamps e nunca envia o token para um servidor.
Molixa JWT Decoder atende a todos os requisitos.
Salve nos favoritos. Use. Pare de colar tokens em sites aleatórios.
Fique seguro por aí.



