Resposta rápida
Cole um JWT — a longa sequência de três partes separadas por pontos — e o decodificador mostra o cabeçalho (algoritmo e tipo) e o payload (as claims) como JSON legível. Datas como exp e iat são convertidas em datas reais, e você vê de imediato se o token expirou. Decodificar não prova que um token é genuíno: para conferir uma assinatura HS256, informe o segredo. Seu token nunca sai do navegador.
O que é um Decodificador de JWT?
Um Decodificador de JWT (JWT डिकोडर) lê um JSON Web Token e mostra o que há dentro dele. Os JWTs estão em toda parte nos apps modernos: quando você faz login num site ou app, o servidor muitas vezes entrega ao seu navegador um token como eyJhbGciOiJIUzI1NiIs… que prova quem você é nas requisições seguintes. As APIs os aceitam no cabeçalho Authorization: Bearer, sistemas de login único como Google, Firebase, Auth0 e AWS Cognito os emitem como tokens de ID, e webhooks e microsserviços os passam entre servidores.
Cada token carrega claims — o ID do usuário, o e-mail ou a função, quem emitiu o token, para quem ele se destina e quando expira — codificadas em Base64URL para viajar com segurança em URLs e cabeçalhos. Este decodificador grátis transforma um token de volta em JSON legível, explica as claims padrão, converte as claims de carimbo de tempo em datas reais, diz se o token expirou, avisa sobre configurações inseguras e, para tokens assinados com HMAC, pode verificar a assinatura com o seu segredo. Tudo isso acontece no seu navegador; o token nunca é enviado.
Principais recursos
- Cabeçalho e payload decodificados e formatados como JSON.
- Seguro com UTF-8 — nomes e claims em hindi ou outros idiomas são exibidos corretamente.
- Tabela de claims com significados em linguagem simples para as claims registradas.
- Datas — exp, iat, nbf e auth_time em UTC e no horário local, com «em 2 h» ou «há 3 dias».
- Status — expirado, ainda não válido ou ainda válido.
- Avisos para alg none e para tokens criptografados (JWE).
- Verificação HMAC para HS256, HS384 e HS512.
- Prefixo «Bearer » removido automaticamente.
Como decodificar um JWT — passo a passo
- Copie o token das ferramentas de desenvolvedor do navegador, de uma resposta de API, de um cookie ou de um log.
- Cole-o na caixa; o resultado aparece na hora.
- Veja a linha de status para o algoritmo e a validade.
- Inspecione o JSON do cabeçalho e do payload e a tabela de claims.
- Para verificar um token HS256/384/512, informe o segredo compartilhado. O token de exemplo desta página é assinado com o segredo
promptminds-secret, então você pode testar.
As três partes de um JWT
| Parte | Contém | Exemplo (decodificado) |
|---|---|---|
| Cabeçalho | Algoritmo e tipo de token | {"alg": "HS256", "typ": "JWT"} |
| Payload | Claims sobre o usuário e o token | {"sub": "1234567890", "name": "Prompt Minds", "exp": 4102444800} |
| Assinatura | HMAC ou assinatura digital sobre header.payload | Dados binários, codificados em Base64URL |
As três partes são unidas por pontos. Como só a assinatura depende de um segredo ou chave privada, qualquer um pode decodificar as duas primeiras partes — e é por isso que os payloads de JWT nunca devem conter senhas, números de cartão ou outros segredos.
Claims registradas explicadas
| Claim | Nome | Significado |
|---|---|---|
| iss | Emissor | Quem criou o token (por exemplo, a URL do seu servidor de autenticação) |
| sub | Assunto | Sobre quem é o token — geralmente o ID do usuário |
| aud | Audiência | Qual app ou API deve aceitá-lo |
| exp | Horário de expiração | Depois desse horário o token deve ser rejeitado |
| nbf | Não antes de | Antes desse horário o token deve ser rejeitado |
| iat | Emitido em | Quando o token foi criado |
| jti | ID do JWT | ID único, útil para evitar repetição (replay) |
As claims de tempo são carimbos de tempo Unix em segundos. Por exemplo, exp 4102444800 é 1º de janeiro de 2100 00:00 UTC — a validade em um futuro distante usada no token de exemplo desta página. Nosso Conversor de timestamp converte qualquer valor assim.
Decodificar x verificar
Decodificar responde «o que este token diz?». Verificar responde «posso confiar no que ele diz?». Para verificar, um servidor recalcula a assinatura sobre header.payload com o segredo compartilhado (HS256) ou a confere com a chave pública do emissor (RS256, ES256) e depois valida exp, nbf, iss e aud. Só depois de todas as verificações passarem ele deve agir com base nas claims. Esta ferramenta pode executar a parte HMAC da verificação para testes; para algoritmos de chave pública, use a biblioteca do seu servidor e o endpoint JWKS do emissor.
Armadilhas comuns de segurança com JWT
- Aceitar alg none — um invasor pode remover a assinatura. Sempre exija um algoritmo específico.
- Confusão de algoritmos — servidores que aceitam tanto RS256 quanto HS256 podem ser enganados a usar a chave pública como segredo HMAC. Fixe o algoritmo esperado.
- Segredos HMAC fracos — segredos curtos podem ser quebrados por força bruta a partir de um token capturado. Use pelo menos 256 bits aleatórios.
- Tokens de longa duração — mantenha os tokens de acesso curtos (de minutos a horas) e use tokens de atualização.
- Guardar tokens no localStorage — qualquer XSS pode roubá-los; considere cookies HttpOnly.
- Dados sensíveis no payload — ele pode ser lido por qualquer um que veja o token.
Onde encontrar um JWT
- Ferramentas de desenvolvedor do navegador → aba Rede → cabeçalho Authorization de uma requisição.
- Aba Aplicativo / Armazenamento → cookies, localStorage ou sessionStorage.
- Respostas de API de endpoints de login (muitas vezes os campos access_token e id_token).
- Logs de apps móveis ou ferramentas de proxy ao depurar.
- Firebase —
await user.getIdToken()retorna um token de ID que você pode colar aqui.
Como este decodificador funciona
A ferramenta remove um «Bearer » inicial, divide o token nos pontos, converte cada parte Base64URL de volta em bytes (adicionando o preenchimento e trocando - e _ por + e /), decodifica os bytes como UTF-8 estrito e os analisa como JSON. Os erros são informados com precisão — por exemplo, se uma parte contém caracteres que não são Base64URL ou não é um JSON válido. O status de validade é calculado com base no relógio do seu dispositivo. Para HS256/384/512, ela importa seu segredo com a Web Crypto API, calcula o HMAC de header.payload e compara o resultado em Base64URL com a assinatura do token.
Tokens de acesso, de ID e de atualização
Os sistemas de login baseados em OAuth 2.0 e OpenID Connect geralmente emitem vários tokens. O token de ID é sempre um JWT e descreve o usuário (nome, e-mail, sub) para o app cliente. O token de acesso é enviado às APIs; muitas vezes é um JWT, mas pode ser uma string aleatória opaca que só o emissor entende — essas não podem ser decodificadas aqui. O token de atualização tem longa duração, deve ser guardado com segurança e é trocado por novos tokens de acesso quando eles expiram. Se um token não decodifica, provavelmente ele é opaco e não quebrado.
Usos comuns
- Depurar erros «401 Unauthorized» conferindo exp, aud e iss.
- Conferir quais funções ou escopos um token concede.
- Comparar tokens de ID de diferentes provedores de identidade.
- Verificar tokens HS256 de webhooks ou serviços durante o desenvolvimento.
- Aprender como os tokens de autenticação são construídos.
- Confirmar problemas de defasagem de relógio entre servidores.
- Conferir se uma nova versão ainda emite tokens com as claims esperadas.
Erros comuns a evitar
- Confiar nas claims decodificadas no navegador para decisões de segurança — sempre verifique no servidor.
- Colar tokens de produção em sites desconhecidos — um token é uma senha temporária.
- Tratar exp como milissegundos — os tempos de JWT são em segundos.
- Ignorar a defasagem de relógio — permita uma folga de um ou dois minutos entre servidores.
- Usar o mesmo segredo em todo lugar — alterne e restrinja o escopo dos segredos.
Solução de problemas
- «Um JWT tem 3 partes» — o token foi cortado ou tem texto extra; copie-o de novo por inteiro.
- «não é um JSON Base64URL válido» — o token pode ser um token de acesso opaco e não um JWT.
- A assinatura não coincide — segredo errado, um token modificado, ou o segredo está codificado em Base64 no servidor (informe o segredo decodificado).
- Expirado, mas o app continua funcionando — o app pode atualizar os tokens automaticamente ou conferir outro token.
Glossário rápido
- JWT: JSON Web Token (RFC 7519).
- JWS / JWE: formatos de token assinado / criptografado.
- Claim: uma informação no payload.
- HMAC: hash com chave usado por HS256/384/512.
- JWKS: um conjunto JSON de chaves públicas usado para verificar tokens RS/ES.
- Bearer token: um token que concede acesso a quem o possui.
- Base64URL: Base64 seguro para URLs, sem preenchimento, usado em todas as partes de um JWT.
- Defasagem de relógio (clock skew): pequenas diferenças de tempo entre servidores que podem fazer tokens novos parecerem expirados.
Por que usar este Decodificador de JWT?
Ele decodifica qualquer JWT na hora, explica claims e validade em linguagem simples, aponta configurações perigosas, verifica assinaturas HMAC e mantém seu token no seu dispositivo — grátis e sem cadastro.
Decodificador de JWT — Informações principais
| Decodifica | Cabeçalho e payload (Base64URL → JSON UTF-8) |
|---|---|
| Claims | iss, sub, aud, exp, nbf, iat, jti e claims personalizadas |
| Datas | exp, iat, nbf exibidas em UTC e no horário local com o status de validade |
| Verificar | HS256 / HS384 / HS512 com o seu segredo (Web Crypto) |
| Não verificado | Assinaturas RS / ES / PS (precisam da chave pública do emissor) |
| Privacidade | Roda no seu navegador — o token nunca é enviado |
Perguntas frequentes
O que é um JWT?
Um JSON Web Token (JWT) é uma forma compacta e segura para URLs de enviar claims — como o ID de um usuário e o horário de expiração — entre sistemas. Ele tem três partes em Base64URL separadas por pontos: um cabeçalho, um payload e uma assinatura. Está definido na RFC 7519.
Um JWT é criptografado?
Em geral, não. Um JWT assinado comum (JWS) é apenas codificado, então qualquer pessoa que o tenha pode ler o cabeçalho e o payload — exatamente o que este decodificador faz. A assinatura impede adulteração, não a leitura. Nunca coloque senhas nem dados pessoais sensíveis no payload de um JWT.
Decodificar prova que o token é válido?
Não. Decodificar apenas lê o conteúdo. Um token só é confiável se sua assinatura for verificada com a chave correta e suas claims (expiração, emissor, audiência) forem conferidas pelo seu servidor.
Como verifico se um JWT expirou?
Veja a claim exp, que é um carimbo de tempo Unix em segundos. O decodificador a converte em uma data e diz se ela está no passado (expirado) ou no futuro, e há quanto tempo ou em quanto tempo.
Esta ferramenta pode verificar a assinatura?
Sim, para tokens HMAC (HS256, HS384, HS512), se você informar o segredo compartilhado. Tokens assinados com RS256, ES256, PS256 e semelhantes usam criptografia de chave pública; verifique-os no seu servidor com a chave pública do emissor ou o JWKS.
É seguro colar meu token aqui?
A decodificação e a verificação acontecem inteiramente no seu navegador e nada é enviado a um servidor. Mesmo assim, trate tokens em uso como senhas: prefira tokens de teste e nunca cole tokens de produção em ferramentas em que você não confia.
O que significa alg none?
Significa que o token não está assinado. Aceitar esses tokens já causou graves falhas de segurança, por isso o decodificador avisa você. Os servidores devem rejeitar alg none, a menos que esperem explicitamente tokens sem assinatura.
O que são iat, nbf e exp?
iat é quando o token foi emitido, nbf é o horário antes do qual ele não deve ser aceito e exp é quando ele expira. Todos são segundos desde 1º de janeiro de 1970 UTC.
Por que meu token tem cinco partes?
Um token de cinco partes é um JWE criptografado. O payload dele não pode ser lido sem a chave de descriptografia, então não pode ser decodificado aqui.
O que é Base64URL?
Base64URL é o Base64 com - e _ no lugar de + e /, e sem o preenchimento =, para que os tokens sejam seguros em URLs e cabeçalhos.
Posso decodificar tokens do Firebase, Auth0, Cognito ou Google?
Sim. Os tokens de ID e de acesso desses provedores são JWTs padrão. Você verá claims como iss, aud, sub, email e auth_time.
O Decodificador de JWT é grátis?
Sim. É grátis, ilimitado e não exige cadastro.
Veja dentro de qualquer token!
Cabeçalho, payload, claims e validade — decodificados com privacidade no seu navegador.
Conheça mais ferramentas da Prompt Minds
O Decodificador de JWT funciona muito bem junto com nossas outras ferramentas grátis. Todas as ferramentas do Prompt Minds rodam inteiramente no seu navegador — sem cadastro, sem uploads, sem marca d’água. Ver todas as ferramentas grátis.
