Decodificação Local Instantânea
O cabeçalho e o payload são decodificados e formatados como JSON no momento em que você cola o token — sem botões para clicar.
Decodifique o cabeçalho, payload e assinatura de JWT (JSON Web Token) instantaneamente. Veja o status das claims exp, iat, nbf. 100% no lado do cliente, sem uploads, sem rastreamento.
Decodificação instantânea de JWT com indicadores de status de claims e JSON formatado — direto no seu navegador. Sem envios, sem inscrição, sem limites.
Copie um JWT e cole-o na caixa de entrada na parte superior.
O cabeçalho decodificado (algoritmo) e o payload (claims) aparecem como JSON formatado.
As claims iat, nbf e exp são destacadas — tokens expirados ou ainda não válidos são sinalizados em vermelho ou amarelo.
Use o botão Copiar para copiar o cabeçalho ou payload JSON decodificado.
O cabeçalho e o payload são decodificados e formatados como JSON no momento em que você cola o token — sem botões para clicar.
As claims `exp`, `nbf` e `iat` são analisadas e comparadas com o horário atual, com status claro codificado por cores para tokens expirados, ainda não válidos e ativos.
Decodifica corretamente payloads Base64URL que contêm caracteres não ASCII, incluindo emoji e texto internacional.
Um JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma forma compacta e autossuficiente de transmitir informações com segurança entre partes como um objeto JSON. JWTs são comumente usados para autenticação e autorização em aplicações web. Após um usuário fazer login, o servidor emite um JWT contendo claims sobre o usuário (como seu ID de usuário e funções). O cliente inclui este JWT no cabeçalho Authorization de requisições subsequentes, permitindo que o servidor verifique a identidade do usuário sem armazenar o estado da sessão.
Um JWT consiste em três partes separadas por pontos: `header.payload.signature`. O cabeçalho especifica o tipo de token (JWT) e o algoritmo de assinatura (por exemplo, HS256, RS256). O payload contém as claims — declarações sobre o usuário e metadados adicionais. A assinatura é usada para verificar se o token não foi adulterado. Apenas o cabeçalho e o payload são decodificados em Base64URL para ler as claims; a assinatura é um valor binário usado apenas para verificação.
Decodificar um JWT significa decodificar o cabeçalho e o payload em Base64URL para ler as claims. Isso não exige nenhuma chave secreta — qualquer um pode decodificar um JWT. A decodificação informa o que o token afirma, mas não prova que as claims são verdadeiras ou que o token foi emitido por uma parte confiável.
Verificar um JWT significa verificar a assinatura usando a chave secreta (para algoritmos HMAC) ou a chave pública (para algoritmos RSA/ECDSA). Isso confirma que o token foi emitido pelo detentor da chave secreta/privada e que não foi modificado desde então. Apenas tokens verificados devem ser confiáveis para decisões de segurança. Nossa ferramenta decodifica JWTs, mas não os verifica — para verificação, use uma biblioteca como jsonwebtoken (Node.js) ou PyJWT (Python).
Claims registradas (definidas no RFC 7519): `sub` (sujeito — o ID do usuário), `iss` (emissor), `aud` (audiência), `exp` (tempo de expiração), `nbf` (não antes), `iat` (emitido em), `jti` (ID do JWT). Claims privadas: claims personalizadas acordadas entre as partes, como `role`, `permissions`, `email` ou `name`. Nossa ferramenta exibe todas as claims no payload como JSON formatado.
Inspecione as claims de um JWT emitido pelo seu servidor de autenticação para confirmar o ID do usuário, funções ou expiração.
Verifique rapidamente se o JWT gerado no servidor contém o payload esperado antes de enviá-lo ao cliente.
Veja exatamente como um JWT é estruturado — cabeçalho, payload, assinatura — sem escrever nenhum código.
Veja instantaneamente se um erro 401 é causado por uma claim `exp` expirada ou por uma claim `nbf` ainda não válida.
Uma comparação lado a lado de ferramentas populares de decodificação de JWT.
| Recurso | NovaTools | JWT.io | JWT.ms |
|---|---|---|---|
| Privacidade (sem upload) | 100% local | Envia para o servidor | Envia para o servidor |
| Preço | Gratuito ilimitado | Gratuito com anúncios | Gratuito |
| Status da claim (exp/nbf/iat) | Codificado por cores | ||
| JSON formatado | |||
| Decodificação segura UTF-8 | Limitado | ||
| Compatível com celular | Limitado | Limitado | |
| Funciona offline | Após carregar a página |
JWT.io e JWT.ms enviam seu token para os servidores deles para decodificação. Nossa ferramenta decodifica tudo localmente — seu JWT nunca sai do seu navegador.
Fatos importantes sobre JSON Web Tokens.
| Símbolo / Código | Descrição | Exemplo |
|---|---|---|
header.payload.signature | Três partes codificadas em Base64URL separadas por pontos. | eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123 |
header | Objeto JSON com algoritmo (alg) e tipo de token (typ). | {"alg":"HS256","typ":"JWT"} |
payload | Objeto JSON com claims sobre o usuário e o token. | {"sub":"123","exp":1735689600} |
signature | Assinatura HMAC/RSA/ECDSA. Não decodificada, apenas verificada. | HMAC-SHA256(header.payload, secret) |
header.payload.signatureTrês partes codificadas em Base64URL separadas por pontos.
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123headerObjeto JSON com algoritmo (alg) e tipo de token (typ).
{"alg":"HS256","typ":"JWT"}payloadObjeto JSON com claims sobre o usuário e o token.
{"sub":"123","exp":1735689600}signatureAssinatura HMAC/RSA/ECDSA. Não decodificada, apenas verificada.
HMAC-SHA256(header.payload, secret)| Símbolo / Código | Descrição | Exemplo |
|---|---|---|
sub | Sujeito — identifica o usuário ou entidade. | "sub":"user-123" |
iss | Emissor — identifica quem emitiu o token. | "iss":"auth.example.com" |
aud | Audiência — destinatário pretendido do token. | "aud":"api.example.com" |
exp | Tempo de expiração (carimbo de data/hora Unix em segundos). | "exp":1735689600 |
iat | Emitido em (carimbo de data/hora Unix em segundos). | "iat":1735603200 |
nbf | Não antes — o token não é válido antes deste horário. | "nbf":1735603200 |
subSujeito — identifica o usuário ou entidade.
"sub":"user-123"issEmissor — identifica quem emitiu o token.
"iss":"auth.example.com"audAudiência — destinatário pretendido do token.
"aud":"api.example.com"expTempo de expiração (carimbo de data/hora Unix em segundos).
"exp":1735689600iatEmitido em (carimbo de data/hora Unix em segundos).
"iat":1735603200nbfNão antes — o token não é válido antes deste horário.
"nbf":1735603200| Símbolo / Código | Descrição | Exemplo |
|---|---|---|
HS256 | HMAC com SHA-256. Simétrico — mesmo segredo para assinar e verificar. | {"alg":"HS256"} + shared secret |
RS256 | Assinatura RSA com SHA-256. Assimétrico — chave privada assina, chave pública verifica. | {"alg":"RS256"} + RSA 2048-bit key pair |
ES256 | ECDSA com P-256 e SHA-256. Assimétrico — assinaturas menores que RSA. | {"alg":"ES256"} + EC P-256 key pair |
none | Sem assinatura. INSEGURO — nunca use em produção. | {"alg":"none"} — CRITICAL vulnerability |
HS256HMAC com SHA-256. Simétrico — mesmo segredo para assinar e verificar.
{"alg":"HS256"} + shared secretRS256Assinatura RSA com SHA-256. Assimétrico — chave privada assina, chave pública verifica.
{"alg":"RS256"} + RSA 2048-bit key pairES256ECDSA com P-256 e SHA-256. Assimétrico — assinaturas menores que RSA.
{"alg":"ES256"} + EC P-256 key pairnoneSem assinatura. INSEGURO — nunca use em produção.
{"alg":"none"} — CRITICAL vulnerabilityEsta ferramenta funciona inteiramente no seu navegador. Seus arquivos não são enviados para um servidor, nem armazenados, nem analisados.
Mesmo se sua conexão com a internet cair, seus arquivos permanecem seguros.
Entenda a estrutura de um JWT, o que significam as claims iat, nbf e exp, e a diferença importante entre decodificar e verificar um token com segurança.
Entenda o que é Base64, quando usar Base64 padrão ou seguro para URL, e como codificar ou decodificar texto localmente no navegador.
Entenda por que a subtração simples de datas está errada, como a idade exata é calculada e como anos bissextos afetam o total de dias vividos.