Pular para o conteúdo
ToolMug

Decodificador JWT

Cole um JSON Web Token para ver o cabeçalho e o payload, conferir se ele expirou e verificar a assinatura com um segredo ou uma chave pública. Tudo roda localmente, então tokens de produção nunca são enviados a um servidor.

Roda no seu navegador — nada do que você digita é enviado

Decodificar não verifica a assinatura. Qualquer pessoa pode criar um token com quaisquer claims.

Como usar

  1. Cole o token — com ou sem o prefixo “Bearer ”. As três partes aparecem em cores diferentes.
  2. Leia o cabeçalho e o payload decodificados. As claims iat, nbf e exp são mostradas como datas, com o tempo relativo.
  3. Para verificar a assinatura, digite o segredo compartilhado nos tokens HS256/384/512, ou cole a chave pública (PEM ou JWK) nos tokens RS, PS, ES e EdDSA.
  4. Copie o JSON decodificado se precisar dele em outro lugar.

Opções explicadas

Cabeçalho
Metadados do token, geralmente alg (o algoritmo de assinatura) e typ. O campo kid indica qual chave assinou o token.
Payload
As claims. As registradas incluem sub (assunto), iss (emissor), aud (público), iat (emitido em), nbf (não antes de) e exp (expiração), todas com horários em segundos Unix.
Assinatura
Prova que o cabeçalho e o payload não foram alterados. Para verificá-la é preciso o segredo (HMAC) ou a chave pública do emissor (RSA, ECDSA, EdDSA).
O segredo está codificado em Base64
Alguns serviços guardam segredos HMAC codificados em Base64. Marque esta opção se o segredo que você tem estiver na forma codificada.

Claims comuns

Claim Significado Exemplo
sub A quem o token se refere (ID do usuário) "1234567890"
iss Quem emitiu "https://accounts.example.com"
aud A quem se destina "my-api"
exp Hora de expiração, em segundos Unix 1790427600
iat Hora de emissão, em segundos Unix 1790424000
nbf Não válido antes de, em segundos Unix 1790424000
jti ID único do token, usado para evitar reutilização "a1b2c3"

Exemplo

O token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c é decodificado no cabeçalho {"alg":"HS256","typ":"JWT"} e em um payload com sub, name e iat (18 de janeiro de 2018). Com o segredo your-256-bit-secret, a assinatura é verificada.

Perguntas frequentes

É seguro colar um JWT de produção aqui?

O token é decodificado por JavaScript no seu navegador e não é enviado nem registrado. Mesmo assim, trate tokens de acesso como senhas — qualquer pessoa com um token válido pode usá-lo até ele expirar.

Decodificar um JWT prova que ele é autêntico?

Não. O cabeçalho e o payload são apenas codificados em Base64URL, então qualquer um pode lê-los ou forjá-los. Só uma verificação de assinatura bem-sucedida com a chave certa mostra que o token foi emitido por quem se espera.

Por que a verificação falha com o segredo correto?

Veja se o segredo está codificado em Base64, se há um espaço ou quebra de linha no final e se o algoritmo do cabeçalho é o mesmo que o emissor usa. Qualquer alteração no token, mesmo de um caractere, também invalida a assinatura.

O que significa “alg none”?

O token diz que não está assinado. Os servidores devem rejeitar esses tokens, a menos que os esperem explicitamente; aceitá-los já causou falhas reais de autenticação.

Como obtenho a chave pública de tokens RS256?

Os provedores de identidade publicam suas chaves como um JWKS, geralmente em /.well-known/jwks.json. Copie a chave cujo kid corresponde ao do cabeçalho do token e cole aqui como JWK.

Privacidade

Esta ferramenta funciona inteiramente no seu navegador. Seus arquivos e textos são processados no seu dispositivo e nunca são enviados aos nossos servidores.

Ferramentas relacionadas