Verificador de assinaturas JWT

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 navegador
LOCAL CRYPTOjose 6.2.10HS · RS · PS · ES · EdDSAWeb Crypto API
JWTs, segredos HMAC e materiais JWK são processados neste navegador. O verificador não busca uma URL JWKS, não envia tokens e não mantém material de chave após a sessão.
JWT compacto
Material de verificação

Para HS256/384/512, informe o segredo compartilhado sem transformação. Para algoritmos assimétricos, cole um JWK público ou um documento JWKS JSON.

Resumo dos claims
Cabeçalho e payload protegidos
Decode or verify a compact JWT to inspect its protected header and payload.

Decodificar não é o mesmo que verificar

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.

Como inspecionar e verificar um token

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.

  1. Cole o JWT compacto no campo do token. O primeiro clique carrega o módulo jose, então o primeiro resultado demora um instante.
  2. Cole o material da chave: o segredo compartilhado bruto para HS256/384/512, ou o JWK público ou o documento JWKS para os algoritmos assimétricos. O campo do segredo é aparado antes do uso e seus bytes são tratados como UTF-8.
  3. Pressione Inspecionar token para ler o cabeçalho e o payload sem confiar neles, ou Verificar assinatura para conferir a assinatura e as claims registradas.
  4. Preencha Emissor esperado e Audiência esperada quando o token precisar estar vinculado a eles; deixe vazio para pular essas verificações.
  5. Carregar exemplo ES256 local cria um par de chaves efêmero na página, assina um token com ele e o verifica, para você ver uma verificação bem-sucedida sem trazer chave própria. Limpar esvazia os campos.

O que o verificador confere

Decodificar e o que isso vale

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.

As verificações de Verificar assinatura

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 de claims e a saída bruta

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.

Onde ficam as chaves

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.

Ferramentas recentes: