Decodificador JWT 🔒 Seus dados nunca saem do seu navegador.

Decodifique o header e payload do JWT, verifique a expiração. Nada é enviado a lugar algum.

Sobre esta ferramenta

Um JWT (JSON Web Token) tem 3 partes separadas por pontos: header, payload e assinatura. O header e o payload são apenas JSON codificado em Base64URL — qualquer pessoa com o token pode lê-los, por isso nunca coloque dados sensíveis no payload de um JWT. Esta ferramenta decodifica o token, verifica a expiração (exp/nbf) e explica cada claim padrão.

Diferente de muitos decodificadores JWT, tudo aqui roda 100% no seu navegador — seu token (que costuma carregar credenciais de sessão ativas) nunca é enviado a nenhum servidor.

Perguntas frequentes

Um JWT é criptografado?

Não. Um JWT padrão é assinado, não criptografado — seu header e payload são apenas Base64URL, então qualquer um pode decodificá-los e lê-los sem nenhuma chave. Nunca coloque segredos dentro de um payload de JWT.

O que "Assinatura verificada" realmente prova?

Prova que o header e o payload do token não foram alterados desde que quem detém o segredo (ou a chave privada) o assinou. Não diz nada sobre se as claims dentro são verdadeiras — essa é uma decisão de autorização separada que seu backend toma.

Por que esta ferramenta só consegue verificar tokens HS256/HS384/HS512?

Esses são algoritmos simétricos — verificá-los só precisa do mesmo segredo compartilhado usado para assinar, que você pode digitar com segurança nesta página. RS256/ES256 e similares usam uma chave privada que nunca deve sair do seu servidor, então esta ferramenta não consegue verificá-los.

O que significa quando o header diz "alg": "none"?

Significa que o token não está assinado de forma alguma — qualquer um pode editar seu payload e ele ainda vai "decodificar" com sucesso. Um servidor que aceita tokens alg: none tem uma vulnerabilidade grave; esta ferramenta sinaliza isso com um aviso.

Meu token ou segredo é enviado a um servidor quando eu decodifico ou verifico?

Não. A decodificação e a verificação de assinatura acontecem localmente no seu navegador usando a Web Crypto API — o segredo que você digita nunca é salvo nem transmitido.