Depurador / descodificador JWT

Cole qualquer JWT para descodificar as suas três partes separadas por pontos — o cabeçalho, o payload e a assinatura em base64url são mostrados como JSON formatado com os claims registados (exp, iat, nbf e afins) convertidos para a sua hora local. Pode depois verificar a assinatura com a API WebCrypto: HMAC (HS256/384/512) com um segredo, ou RSA/ECDSA (RS256/384/512, ES256/384/512) com uma chave pública PEM, e um token HS256 de exemplo está a um clique para experiências. Tudo é executado localmente — os tokens, segredos e chaves nunca são enviados para lado nenhum.
Token JWT Formato: cabeçalho.payload.assinatura (três segmentos base64url).
Aviso: este token declara alg:none, o que significa que não está assinado. Os serviços reais têm de rejeitar tokens sem assinatura — trate-o como não confiável.
ClaimValorInterpretação
Segredo
crypto.subtle não está disponível neste contexto, pelo que a verificação de assinaturas está desativada. Abra a página através de https: ou a partir de um ficheiro local para a ativar. A descodificação continua a funcionar.
Como ler o resultado: o cabeçalho costuma conter alg (o algoritmo de assinatura) e typ. Os claims registados apresentados com conversão para a hora local são iat (emitido em), nbf (não antes de) e exp (expiração) — um distintivo vermelho indica que o token expirou, âmbar indica que expira dentro de 24 horas. A verificação da assinatura calcula o mesmo MAC que o emissor calcularia, ou verifica a chave pública RSA/ECDSA que colar, e depois marca o token como VÁLIDO ou INVÁLIDO. Só podem ser verificados os algoritmos implementados pela camada WebCrypto do navegador; os restantes são indicados como não suportados em vez de serem adivinhados.

Claims registados comuns: sub (sujeito) é o utilizador ou entidade a que o token diz respeito — no seu exemplo é apenas um ID numérico, mas os serviços costumam colocar aqui um email, um nome de utilizador ou um UUID. iss indica o emissor, aud indica o público-alvo, e jti é um ID único do token usado para evitar repetições. Estes claims não são cifrados; qualquer pessoa com o token pode lê-los, por isso nunca coloque palavras-passe ou segredos no payload de um JWT.

Privacidade: a descodificação e a verificação ocorrem inteiramente nesta página com a API WebCrypto — o token, o seu segredo e qualquer chave pública nunca são transmitidos. Para um token alg:none a página mostra um aviso claro: os tokens sem assinatura nunca deveriam ser aceites por uma API real.