Decodificador JWT

Decodificador JWT

Decodifique e inspecione JSON Web Tokens — visualize header, payload, verifique assinaturas HMAC e gere código JWT em PHP, JavaScript, Python e Java.

Atualizado em maio de 2026

CODIFICADO
DECODIFICADO

Cole um token JWT à esquerda para decodificá-lo

GERAR CÓDIGO JWT
Linguagem
Algoritmo
javascript
 1const jwt = require('jsonwebtoken');
 2
 3const secretKey = 'your-256-bit-secret';
 4
 5const payload = {
 6  sub: '1234567890',
 7  name: 'John Doe',
 8  iat: Math.floor(Date.now() / 1000)
 9};
10
11const token = jwt.sign(payload, secretKey, { algorithm: 'HS256' });
12console.log(token);
13
14// To verify:
15const decoded = jwt.verify(token, secretKey, { algorithms: ['HS256'] });
16console.log(decoded);

Como usar

Decodifique, verifique e gere código

1. Cole o token

As três partes aparecem coloridas — header em rosa, payload em roxo, assinatura em ciano.

2. Inspecione as claims

`iat`, `exp` e `nbf` são convertidos automaticamente para datas legíveis — veja expiração de relance.

3. Verifique a assinatura

Para HS256/384/512, insira o segredo e receba um badge verde ou vermelho de confirmação.

O que esta ferramenta faz

Um debugger JWT completo

Decodificação instantânea

Header, payload e assinatura destacados em cores, sem precisar de chave alguma.

Timestamps legíveis

exp, iat, nbf convertidos automaticamente para data ISO — sem cálculo manual.

Verificação HMAC

HS256, HS384, HS512 verificados diretamente no navegador com sua chave secreta.

Geração de código

Snippets prontos em JavaScript, PHP, Python e Java para assinar tokens no seu projeto.

HMAC e RSA no gerador

Templates para HS256/384/512 com chave secreta e RS256/384/512 com par de chaves pública/privada.

Atalho de teclado

Pressione Shift+Enter em qualquer lugar da página para copiar o payload sem tocar no mouse.

Exemplos de decodificação

Situação
O que a ferramenta mostra
Token de referência do jwt.io
`alg: HS256`, `sub`, `name`, `iat` — sem `exp` definido
Token expirado (`exp` no passado)
Data de expiração exibida ao lado do valor Unix bruto
Token malformado (2 partes)
Erro: "Formato esperado: header.payload.signature"
Token `alg: none`
Decodifica normalmente, verificação marcada como "não suportado"
Token com `alg: RS256`
Decodifica normalmente; verificação pede chave pública, pois só HS256/384/512 são checados no navegador

Quando você vai usar isso

Os cenários mais comuns entre quem usa a ferramenta

Debug de 401 Unauthorized

Verifique exp, aud e o algoritmo antes de escrever qualquer código.

Auditoria de segurança

Confirme que nenhum dado sensível está vazando pelas claims do payload.

Teste de integração

Verifique claims corretas, TTL (expiat) e algoritmo antes de escrever testes.

Verificação de assinatura

Confirme que um token foi assinado com o segredo esperado entre serviços.

Aprender a estrutura JWT

Visão dividida e colorida das três partes, ideal sem precisar ler a RFC.

Geração de código de assinatura

Snippets prontos evitam procurar os métodos certos de cada biblioteca.

Erros comuns com JWTs

Confundir decodificar com verificar

Decodificar lê o payload sem checar a assinatura. Um token pode decodificar e ainda ser forjado.

Guardar JWT no localStorage

Acessível a qualquer JavaScript da página — uma vulnerabilidade XSS rouba todos os tokens ativos.

Não verificar a claim `exp`

Um token roubado fica válido indefinidamente. 15 minutos é a boa prática de 2026, com refresh token.

Dados sensíveis no payload

É só Base64URL, não criptografia. Nunca coloque senha, cartão ou CPF num payload JWT.

Aceitar `alg: none` em produção

Um token com alg: none não tem assinatura nenhuma. Bibliotecas modernas rejeitam por padrão, mas vale auditar validação JWT manual escrita antes de 2020.

Esperar verificar RS256 só com o token

Algoritmos assimétricos (RS/ES) precisam da chave pública para verificação — o navegador não tem de onde tirá-la sozinho a partir do token.

Por que usar esta ferramenta

Além da decodificação básica, verifica assinaturas HMAC diretamente no navegador e gera código pronto em quatro linguagens — um debugger completo, não só um leitor de payload.

Tudo roda localmente via Web Crypto API. Seu token e seu segredo nunca saem do dispositivo, nem quando você verifica a assinatura.

É gratuito, sem cadastro e sem limite de tokens — cole quantos precisar. Shift+Enter copia o payload decodificado direto para a área de transferência, sem tirar a mão do teclado.

Perguntas frequentes

O payload é apenas codificado em Base64URL, não criptografado. Qualquer pessoa com a string do token pode decodificar e ler sem chave. A assinatura só prova quem emitiu — não esconde o conteúdo.

Referências

Ferramentas Relacionadas