Inspecione um JWT e verifique a assinatura com um segredo HMAC ou uma chave pública JWK ou JWKS. Informe o emissor ou o público esperado para conferir esses campos; apenas decodificar o token não comprova sua autenticidade.
Funciona localmente no seu navegadorPara HS256/384/512, informe o segredo compartilhado sem transformação. Para algoritmos assimétricos, cole um JWK público ou um documento JWKS JSON.
Decode or verify a compact JWT to inspect its protected header and payload.
Qualquer pessoa pode decodificar o payload de um JWT. Confie no token apenas após validar a assinatura com o algoritmo e a chave previstos, além de issuer, audience, tempo e claims da aplicação.
Cole um JWT compacto e a ferramenta mostra o cabeçalho protegido e o payload, e em seguida verifica a assinatura com o material que você fornecer: um segredo compartilhado bruto para HS256/384/512, ou um documento JWK ou JWKS público para RS, PS, ES e EdDSA. O emissor ou a audiência esperados podem ser conferidos na mesma execução.
Decodificar não é verificar. A página decodifica localmente e diz isso, e só informa um token como verificado quando a assinatura e as claims registradas (exp, nbf, iss, aud) passam. Nada é enviado, nenhuma URL de JWKS é buscada e o material de chave não é guardado.
Inspecionar token passa o payload por um decodificador JWT e imprime o cabeçalho protegido e o payload como JSON. A linha de status fica em aviso de propósito: qualquer pessoa que tenha o token pode lê-lo, então as claims decodificadas são apenas uma prévia do que o token diz ser.
Um token que não declara nenhum algoritmo assinado (alg none ou ausente) ainda é decodificado aqui: a inspeção nunca exige uma assinatura. É Verificar assinatura que o recusa.
Com um segredo compartilhado a assinatura é recalculada sobre o texto exato do token e comparada; com uma chave pública o JWK correspondente é importado e usado. Em um documento JWKS procura-se a chave cujo kid coincide com o cabeçalho do token e, quando o token não tem kid, usa-se a primeira.
As claims registradas são conferidas na mesma execução: exp e nbf contra o relógio atual, iss contra o emissor esperado e aud contra a audiência esperada quando esses campos estão preenchidos. A linha de status nomeia a primeira falha — assinatura inválida, verificação de exp ou nbf, valor de iss ou aud inesperado ou ausente — em vez de um erro genérico.
O resumo lista Algoritmo, ID da chave, Emissor, Audiência, Assunto e Expira; um array de audiências aparece como lista separada por vírgulas. O painel abaixo é o token decodificado como JSON indentado, com protectedHeader e payload no mesmo documento.
Os dois painéis são texto somente leitura: o resultado pode ser selecionado e copiado, e uma verificação bem-sucedida mantém o mesmo layout de uma inspeção, de modo que nada esconde que a assinatura é a parte que torna as claims confiáveis.
Tudo acontece na aba, com a biblioteca jose e a Web Crypto API. A página não faz nenhuma requisição ao inspecionar ou verificar, nunca busca uma URL de JWKS — o documento é colado por você — e o material de chave fica nos campos do formulário.
O botão de exemplo é o único lugar onde existe uma chave privada, e ela não sai da página: o par é gerado no navegador, o token é assinado ali e o campo recebe apenas o JWK público. Isso também significa que a rotação de chaves é manual aqui: um JWKS rotacionado precisa ser colado de novo.