Decodificador e Gerador de JWT

Decodifique um JSON Web Token, verifique a assinatura com o segredo ou a chave, e gere novos tokens assinados. Tudo acontece no seu navegador.

Token válido (dentro do prazo) · expira em 17 de mar. de 2030, 17:46:40

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "sub": "1234567890",
  "name": "João Silva",
  "role": "admin",
  "iat": 1716239022,
  "exp": 1900000000
}

Campos reconhecidos

Assunto / usuário (sub)
1234567890
Emitido em (iat)
1716239022(20 de mai. de 2024, 21:03:42)
Expira em (exp)
1900000000(17 de mar. de 2030, 17:46:40)

Verificar assinatura

Como foi sua experiência com esta ferramenta?

Sua avaliação anônima ajuda a calibrar as fórmulas e manter as ferramentas sempre gratuitas e atualizadas.

O que é um JWT

JWT (JSON Web Token) é um formato compacto para transportar informações assinadas entre sistemas, muito usado em autenticação e autorização de APIs. Ele é uma string dividida em três partes separadas por ponto: o header, o payload e a assinatura, cada uma codificada em Base64URL. O header diz o algoritmo usado, o payload carrega os dados (chamados claims), como o usuário e a data de expiração, e a assinatura garante que nada foi alterado. Depois do login, o servidor entrega um JWT que o cliente envia a cada requisição para provar quem é, sem o servidor guardar sessão.

Como funciona a assinatura de um JWT

A assinatura é o que garante que um JWT não foi adulterado. O servidor calcula a assinatura sobre o header e o payload usando um algoritmo e uma chave: nos algoritmos HS (HMAC), um segredo compartilhado; nos RS, PS e ES, uma chave privada, cuja pública correspondente valida o token. Quem recebe recalcula a assinatura com a chave certa e compara; se bater, os dados são autênticos e íntegros. É importante entender que a assinatura protege contra alteração, não contra leitura. Qualquer pessoa com o token consegue ler o payload, porque ele é só codificado, não criptografado.

Dá para confiar no conteúdo de um JWT?

Você pode confiar que o conteúdo de um JWT não foi alterado, desde que verifique a assinatura, mas não deve tratá-lo como secreto. O payload é apenas codificado em Base64URL, não criptografado, então qualquer pessoa que tenha o token consegue decodificar e ler tudo que está dentro. Por isso, nunca coloque senhas, chaves ou dados sensíveis no payload. A assinatura garante autenticidade e integridade (o token veio de quem tem a chave e não foi mexido), não sigilo. Valide sempre a assinatura e a expiração antes de aceitar um token, e nunca confie em um JWT só porque ele decodifica.

Codificação, hash e criptografia no JWT

Um JWT reúne os três conceitos em uma peça só, o que ajuda a diferenciá-los. Codificação é o Base64URL do header e do payload: reversível e pública, serve só para transportar o texto com segurança em URLs, sem esconder nada. A assinatura usa hash e criptografia: nos algoritmos HS ela é um HMAC (hash com chave secreta), e nos RS, PS e ES é uma assinatura digital (criptografia assimétrica com chave privada e pública). Nenhuma dessas etapas criptografa o conteúdo em si, então lembre: o JWT prova origem e integridade, mas o payload continua legível para todos.

Como usar esta ferramenta

  1. Na aba Decodificar, cole o token no formato header.payload.assinatura para ver o conteúdo e a expiração.
  2. Informe o segredo (HS) ou a chave pública (RS, PS, ES) para conferir se a assinatura é válida.
  3. Na aba Gerar, escolha o algoritmo, edite header e payload, informe o segredo ou a chave privada e clique em Gerar token.

Perguntas Frequentes (FAQ)

O meu token é enviado para algum servidor?
Não. A decodificação, a verificação e a assinatura são feitas inteiramente no seu navegador, com a Web Crypto API, sem enviar nada a nenhum servidor. É seguro colar tokens, segredos e chaves aqui.
Como funciona a verificação de assinatura?
Para os algoritmos HS (HMAC) você informa o segredo compartilhado. Para RS, PS e ES você cola a chave pública no formato PEM (SPKI). A ferramenta recalcula a assinatura e diz se ela confere, provando que o token não foi adulterado.
Quais algoritmos são suportados?
HS256, HS384 e HS512 (HMAC), RS256/384/512 (RSA PKCS#1 v1.5), PS256/384/512 (RSA-PSS) e ES256/384/512 (ECDSA). É o mesmo conjunto usado na maioria dos serviços.
Dá para confiar no que está dentro do JWT?
O conteúdo é legível por qualquer pessoa que tenha o token, pois o payload não é criptografado, apenas codificado em Base64URL. A assinatura garante a autenticidade, não o sigilo. Nunca guarde senhas ou segredos dentro do payload.
Fez um site com IA e quer que alguem cuide dele? Converse comigo - Ygor Andrade, Desenvolvedor e Especialista em Solucoes Web

Ferramentas relacionadas - Codificação