Decodificador / verificador de JWT
Decodifique o header e o payload de um JWT, verifique a assinatura e veja quando expira.
O que é um JSON Web Token
Um JSON Web Token (JWT) é uma forma compacta e autocontida de transportar um conjunto de claims — afirmações como "este é o usuário 42" ou "este token expira ao meio-dia" — de um jeito que se pode verificar. Os JWT estão por toda parte na autenticação moderna: após o login, um servidor muitas vezes entrega ao seu navegador um JWT assinado, e cada requisição posterior o inclui para que o servidor confie em quem você é sem consultar nada. Como o token carrega os próprios claims e a própria assinatura, ele é descrito como "sem estado" (stateless).
Um JWT são três partes codificadas em Base64URL unidas por pontos: header.payload.signature. Esta ferramenta divide e decodifica essas partes para você, mostra os claims de forma legível e, se você fornecer a chave de assinatura, verifica se a assinatura é autêntica.
As três partes
- Header: descreve como o token é assinado, principalmente o algoritmo ("alg", por ex. HS256 ou RS256) e o tipo do token.
- Payload: os claims em si — um objeto JSON com campos como sub (sujeito/usuário), exp (expiração), iat (emitido em) e quaisquer dados personalizados que o emissor adicionou.
- Signature: um valor criptográfico calculado sobre o header e o payload com um segredo ou chave privada. É o que torna um JWT confiável: mude um único caractere do payload e a assinatura deixa de bater.
Crucial: o header e o payload são apenas codificados, não criptografados. Qualquer um que tenha o token pode lê-los. A assinatura não esconde o conteúdo — ela prova que ele não foi adulterado. Nunca coloque senhas ou segredos no payload de um JWT.
Verificar a assinatura
Decodificar um JWT diz o que ele afirma; verificá-lo diz se você deve acreditar nessas afirmações. A verificação recalcula a assinatura a partir do header e do payload usando uma chave e confere se ela bate. Há duas famílias de algoritmos, que usam tipos de chave diferentes:
- HMAC (HS256, HS384, HS512): um esquema simétrico. O mesmo segredo compartilhado assina e verifica. Forneça esse segredo para verificar.
- RSA e ECDSA (RS256, PS256, ES256 e afins): esquemas assimétricos. Uma chave privada assina e uma chave pública verifica. Forneça a chave pública em formato PEM para verificar — você nunca precisa da chave privada só para conferir um token.
Esta ferramenta detecta o algoritmo pelo header automaticamente e verifica inteiramente no seu navegador com a Web Crypto API, então nem o token nem a chave são enviados em momento algum.
Ler os claims padrão
Alguns nomes de claim são padronizados (chamam-se "registered claims"). A ferramenta os rotula e converte os baseados em tempo de timestamps Unix brutos para a sua hora local, com um status em linguagem clara para você ver num relance se um token está ativo, expirado ou ainda não válido:
- exp — expiração: após este momento o token deve ser rejeitado.
- nbf — not before: o token não é válido até este momento.
- iat — issued at: quando o token foi criado.
- iss — issuer: quem criou o token.
- sub — subject: sobre quem ou o quê o token trata (muitas vezes um ID de usuário).
- aud — audience: para quem o token se destina.
- jti — um identificador único para o token.
Perguntas frequentes
- Meu token ou minha chave são enviados para algum lugar?
- Não. A decodificação e a verificação da assinatura rodam inteiramente no seu navegador com a Web Crypto API. O token, o segredo e a chave pública nunca saem do seu dispositivo, então é seguro inspecionar tokens de produção.
- Quais algoritmos de assinatura ele pode verificar?
- HMAC (HS256, HS384, HS512) com um segredo compartilhado, e RSA (variantes RS e PS) e ECDSA (ES256, ES384) com uma chave pública em formato PEM. O algoritmo é detectado automaticamente pelo header do token.
- Um JWT é criptografado?
- Não. Um JWT assinado padrão é apenas codificado, não criptografado — qualquer um pode ler seu header e payload. A assinatura prova que o token não foi alterado, mas não esconde o conteúdo, então nunca armazene segredos no payload.
- Preciso da chave privada para verificar um token RS256?
- Não. Os algoritmos assimétricos verificam com a chave pública. Você só precisa da chave privada para criar (assinar) um token, nunca para conferi-lo.
- Por que meu token aparece como expirado?
- O claim exp está no passado em relação ao relógio do seu dispositivo. A ferramenta converte exp, nbf e iat para a sua hora local e mostra um status para você confirmar num relance a janela de validade do token.
- Qual é a diferença entre HS256 e RS256?
- HS256 é simétrico: um único segredo compartilhado assina e verifica, o mais simples quando a mesma parte faz as duas coisas. RS256 é assimétrico: uma chave privada assina e uma pública verifica, o que permite que muitas partes verifiquem tokens sem poder falsificá-los.
- Posso editar o payload e reassinar o token?
- Esta ferramenta é somente leitura: ela decodifica e verifica, mas não cria nem reassina tokens. Isso a mantém focada e evita lidar com chaves de assinatura privadas.