Decodificador / verificador de JWT

Decodifique o header e o payload de um JWT, verifique a assinatura e veja quando expira.

Token

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.