Pular para o conteúdo

Decodificar JWT

JWT Decoder

Decodifica header e payload, mostra a expiração das claims em hora local e verifica a assinatura com uma chave fornecida — sem enviar o token a lugar nenhum.

Decodifica um JSON Web Token — cabeçalho, payload e assinatura —, explica o que cada claim padrão significa e pode verificar a assinatura com um segredo compartilhado, uma chave colada ou o JWKS do emissor. Tudo acontece na aba: o token em si nunca é enviado a lugar nenhum.

🔒 Roda inteiramente no seu navegadorjwttokenauthdecode

O token fica nesta aba.

A decodificação e a verificação da assinatura rodam as duas no seu navegador, com WebCrypto. Nada é enviado e esta página não tem lado servidor. A única requisição que ela pode fazer é um GET para uma URL de JWKS que você digitar, e essa requisição leva a URL e mais nada: nunca o token nem um segredo.

Token

Um `Bearer ` na frente é retirado para você.

Como usar

  1. Cole o token

    Um `Bearer ` inicial é removido para você. O cabeçalho, o payload e a assinatura se separam na hora: não há botão para apertar.

  2. Leia a linha de status primeiro

    Expirado, ainda não válido ou dentro da janela, calculado contra o seu relógio. As claims de tempo na tabela do payload aparecem como timestamp ISO, sua hora local e os segundos epoch crus, juntos.

  3. Verifique a assinatura se isso importa

    Um segredo compartilhado para HS256/384/512, ou uma URL de JWKS ou uma chave colada para os algoritmos assimétricos. Decodificar não prova nada sobre autenticidade: só a checagem da assinatura prova.

Perguntas frequentes

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

O token é decodificado no seu navegador e nunca transmitido: esta página não tem lado servidor. A única requisição que ela pode fazer é um GET para uma URL de JWKS que você digitar, que carrega a URL e nada mais. Ainda assim, um token em uma aba do navegador é um token na tela, então trate-o como trataria uma senha.

Qualquer um pode ler meu payload?

Sim. Um JWT é assinado, não criptografado: o payload é Base64URL, que é uma codificação. Nunca coloque em um JWT nada que você não colocaria em uma URL. É exatamente isso que esta página demonstra com uma colada.

A assinatura verificou: isso significa que o token é bom?

Significa que o token foi assinado por quem tem aquela chave e não foi alterado desde então. Não diz nada sobre expiração, audiência, emissor ou revogação. A linha de status cobre a expiração; o resto é trabalho da sua aplicação.

Por que ele não consegue checar meu token ES256K ou Ed448?

Porque a verificação usa o WebCrypto do navegador, e essas curvas não estão nele. HS, RS, PS e ES em 256/384/512 mais Ed25519 são o que um navegador consegue fazer; qualquer outra coisa é relatada como não verificável em vez de passar em silêncio.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.