Ir para o conteúdo

Decodificar e verificar JWT

Decodifique o cabeçalho e as claims de um JSON Web Token, confira a expiração e verifique a assinatura; o token não sai do seu navegador.

Decodificado e verificado nesta aba — o token e as chaves nunca são enviados para lugar nenhum.

O cabeçalho, as claims e a expiração aparecem aqui quando você cola um token.
Roda no seu navegador · sem uploadComo funciona

Como usar: Decodificador de JWT

  1. 1

    Cole o token

    Cole o JWT de um cabeçalho Authorization, de um cookie ou do armazenamento do seu app; o “Bearer ” no início é ignorado.

  2. 2

    Leia as claims

    Confira as tabelas de cabeçalho e payload, os horários legíveis de exp, iat e nbf e o aviso de expiração.

  3. 3

    Adicione a chave

    Informe o segredo HMAC ou cole a chave pública como PEM, certificado, JWK ou JWKS.

  4. 4

    Verifique a assinatura

    Clique em Verificar assinatura para confirmar que o token foi assinado com essa chave e não foi alterado.

Limites e Pro

Grátis, sem cadastro e sem limite de tokens; a verificação aceita 13 algoritmos (HS, RS, PS e ES de 256, 384 e 512 bits, além de EdDSA).

O Pro remove os anúncios; a decodificação e a verificação são iguais em todos os planos. Ver o Pro

Sobre: Decodificador de JWT

Um JSON Web Token (JWT) é formado por três strings em Base64URL unidas por pontos: um cabeçalho que informa o algoritmo de assinatura, um payload com as claims e uma assinatura. Cole um token, com ou sem o prefixo “Bearer ”, e o decodificador mostra o cabeçalho e o payload em uma tabela legível ou em JSON formatado, destaca com cores as três partes do token e explica campos padrão como iss, sub, aud, kid e scope.

As claims de tempo são convertidas para você: exp, iat, nbf e auth_time aparecem como data no seu fuso horário, em UTC e como tempo relativo (“expira em 2 horas”, “expirou há 3 dias”). Um aviso mostra rapidamente se o token está expirado, ainda não é válido ou não tem expiração, e alerta quando exp parece estar em milissegundos em vez de segundos.

Decodificar não prova nada sobre quem emitiu o token, por isso o verificador confere a assinatura com o WebCrypto integrado ao seu navegador. HS256, HS384 e HS512 exigem o segredo compartilhado (texto simples ou Base64). Os algoritmos RS, PS e ES de 256, 384 e 512 bits, além de EdDSA com Ed25519, exigem a chave pública, que você pode colar como chave pública PEM, bloco RSA PUBLIC KEY, certificado X.509, um único JWK ou um JWKS completo, em que a chave é escolhida pelo kid do token.

A ferramenta não descriptografa tokens JWE (os de cinco partes) e não busca URLs de JWKS; abra você mesmo o jwks_uri do emissor e cole o JSON.

Privacidade

Tokens são credenciais ao portador, e esta página trata como tal: a decodificação e a verificação da assinatura rodam no seu navegador com WebCrypto, e o token, o segredo e as chaves nunca são enviados a um servidor, registrados em log nem armazenados. Fechar ou recarregar a aba apaga tudo.

Recursos

Horários legíveis

exp, iat e nbf no seu fuso horário, em UTC e como “em 2 horas” ou “há 3 dias”.

Verificação real da assinatura

HMAC, RSA, RSA-PSS, ECDSA e Ed25519 verificados com WebCrypto usando sua chave ou JWKS.

O token fica no seu navegador

Nada é enviado, então tokens de produção podem ser inspecionados com segurança.

Decodificador de JWT: perguntas frequentes

É seguro colar aqui um token de produção?
O token é decodificado e verificado por JavaScript executado na sua aba, e nenhuma requisição com ele é feita, o que você pode confirmar no painel de rede do navegador. Mesmo assim, um token válido funciona como uma senha até expirar, então evite colar tokens ativos em sites em que você não confia e prefira tokens expirados ou de teste ao compartilhar capturas de tela.
Por que um token decodificado não prova nada?
Qualquer pessoa pode criar um cabeçalho e um payload e codificá-los em Base64URL; decodificar apenas desfaz isso. Só a assinatura liga o token ao seu emissor. Verifique-a com a chave pública do emissor ou o segredo compartilhado antes de confiar em qualquer claim, e confira se o alg é o que seu servidor espera, pois aceitar “none” ou um algoritmo trocado é uma vulnerabilidade clássica.
Onde encontro a chave pública para verificar um token RS256 ou ES256?
Os provedores de identidade publicam suas chaves como um JWK Set. Procure o /.well-known/openid-configuration do emissor, abra o jwks_uri indicado e cole aqui esse JSON; será usada a chave cujo kid corresponde ao do cabeçalho do token. Você também pode colar uma chave pública PEM ou o certificado X.509 do emissor.
O que significam exp, iat e nbf?
São claims do tipo NumericDate, contadas em segundos desde 1º de janeiro de 1970 UTC. exp indica quando o token deixa de ser válido, iat quando foi emitido e nbf o primeiro momento em que pode ser aceito. Os servidores costumam tolerar um ou dois minutos de diferença de relógio. O decodificador mostra cada uma como data local, horário UTC e tempo relativo.
Por que a verificação falha mesmo com o segredo HMAC correto?
As causas comuns são espaços em branco copiados junto com o segredo, um segredo que estava codificado em Base64 quando o token foi assinado ou um token recodificado por uma ferramenta que alterou os bytes do cabeçalho ou do payload. Tente a opção “O segredo está codificado em Base64”. Qualquer mudança nas duas primeiras partes, até na ordem das chaves do JSON, invalida a assinatura.