Ir para o conteúdo principal

Sexta-feira, 28 de agosto de 2026

Tecnologia no mundo, explicada em português.

Ferramentas

Decodificador de JWT

Separe as três partes de um JSON Web Token e leia o cabeçalho e o payload em JSON formatado, com as datas convertidas para texto legível. A assinatura não é conferida.

Tudo acontece no seu navegador. Nenhum dado digitado aqui é enviado à sysINFO ou a terceiros - não há servidor, upload nem registro. Você pode desconectar da internet e a ferramenta continua funcionando.

Atenção: esta ferramenta apenas LÊ o token. Ela NÃO verifica a assinatura. Um JWT não é criptografado: cabeçalho e payload são JSON codificado em Base64URL, e qualquer pessoa que tenha o token consegue ler o conteúdo em segundos, sem senha e sem chave. Portanto, JWT não é lugar para segredo - nada de senha, chave de API, número de documento ou dado sensível ali dentro. E o fato de o token parecer correto aqui não significa que ele seja válido: só o serviço que possui a chave pode afirmar isso.

Pode colar com o prefixo Bearer na frente: ele é descartado automaticamente. A leitura é refeita a cada tecla.
Cabeçalho (header)

          
Conteúdo (payload)

          
Resumo do token

Para que serve

Um JSON Web Token, definido na RFC 7519, é um crachá digital: um pequeno documento JSON que um serviço emite, assina e entrega ao cliente, para que este o apresente nas requisições seguintes. Ele aparece em cabeçalhos de autorização, em cookies de sessão, em respostas de login social e em integrações entre sistemas. Como o token viaja em uma única linha de texto embaralhado, entender o que há dentro dele exige decodificar as partes.

É exatamente isso que esta página faz. Ela quebra o token nos três trechos separados por ponto, decodifica os dois primeiros de Base64URL, formata o JSON com recuo e monta um resumo com o algoritmo declarado, o tipo e as datas de emissão, de início de validade e de expiração convertidas para horário legível. Serve para depurar um login que falha, conferir quais permissões um serviço colocou no token, descobrir por que uma sessão caiu antes do esperado ou simplesmente entender a estrutura de um JWT pela primeira vez.

O que ela deliberadamente não faz é dizer se o token é legítimo. Essa resposta depende de conferir a assinatura com uma chave que a página não tem e não deve pedir. Trate o resultado aqui como leitura, nunca como aprovação.

Como usar

  1. Cole o token no campo Token JWT. Se ele vier de um cabeçalho de autorização, pode colar com o prefixo Bearer: a ferramenta o remove sozinha.
  2. A leitura acontece automaticamente enquanto você digita ou cola. O botão Decodificar força uma nova leitura quando você quiser.
  3. Confira o Cabeçalho à esquerda: ali estão o algoritmo declarado, o tipo e, quando existe, o identificador da chave usada na assinatura.
  4. Leia o Conteúdo à direita: é o payload, com as afirmações registradas na especificação e as que o serviço tiver acrescentado.
  5. No Resumo do token ficam o algoritmo, o tipo, as datas convertidas, a situação em relação à expiração e a indicação de que a assinatura está presente mas não foi verificada.
  6. Limpar apaga o token e os três blocos de resultado.

Exemplos

A anatomia de um token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9   .   eyJzdWIiOiIxMjM0NTY3ODkwIn0   .   SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV
    cabeçalho (Base64URL)                       payload (Base64URL)                    assinatura

O que sai do cabeçalho e do payload

Cabeçalho:
{
  "alg": "HS256",
  "typ": "JWT"
}

Conteúdo:
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Como o resumo interpreta as datas

Algoritmo declarado   HS256
Tipo                  JWT
iat                   2018-01-18T01:30:22.000Z (17/01/2018, 22:30:22)
Assinatura            presente (não verificada)

Notas técnicas

Cada uma das duas primeiras partes é decodificada de Base64URL, a variante da RFC 4648 em que o sinal de mais vira hífen, a barra vira sublinhado e o preenchimento final é omitido. A página desfaz essas trocas, recompõe o preenchimento e converte os bytes com decodificação UTF-8, o que garante que nomes com acento apareçam corretamente. Depois disso o JSON é analisado e reimpresso com recuo de dois espaços.

As datas seguem o formato NumericDate da especificação: segundos inteiros contados desde o início de 1970 em UTC. Os campos reconhecidos no resumo são iat, de emissão, nbf, o instante a partir do qual o token passa a valer, e exp, o instante em que deixa de valer. A comparação de validade usa o relógio da sua máquina, então um computador com hora errada produz um veredito errado. Note ainda que serviços costumam tolerar uma pequena folga de relógio na verificação real, coisa que esta leitura não simula.

A assinatura é apenas contada como presente ou ausente. Verificá-la exigiria o segredo compartilhado, nos algoritmos da família HMAC, ou a chave pública correspondente, nas famílias RSA e de curva elíptica. Colar um segredo de produção em uma página da web seria uma péssima ideia mesmo em uma ferramenta que roda localmente, então a operação simplesmente não existe aqui. Vale lembrar também que o campo alg é um dado escrito pelo emissor e não deve ser usado por um verificador para escolher o algoritmo: essa confusão está na origem do ataque clássico em que a assinatura é removida e o algoritmo é declarado como none.

Perguntas frequentes

A ferramenta verifica a assinatura do token?

Não, e isso é proposital. Verificar a assinatura exige a chave: o segredo compartilhado nos algoritmos HMAC ou a chave pública nos algoritmos RSA e de curva elíptica. Uma página que roda no seu navegador não tem essa chave, e digitar um segredo de produção em qualquer site é um risco que não vale a pena. O terceiro trecho do token é apenas listado como presente ou ausente.

O conteúdo de um JWT é criptografado?

Não. Cabeçalho e payload são apenas JSON codificado em Base64URL, que qualquer pessoa reverte em segundos, sem senha nenhuma. A assinatura garante que o conteúdo não foi alterado, e não que ele esteja escondido. Por isso um JWT nunca deve carregar senha, número de documento, chave de API ou qualquer outro dado que precise ficar secreto.

O que a linha de situação com expirado ou dentro da validade quer dizer?

Ela apenas compara o campo exp do payload com o relógio do seu computador. É uma leitura informativa, não uma decisão de autorização: como a assinatura não foi conferida, qualquer pessoa poderia ter reescrito esse valor. Além disso, se o relógio da sua máquina estiver adiantado ou atrasado, a resposta muda sem que o token tenha mudado.

Posso colar aqui um token de produção?

Tecnicamente a página não envia nada: todo o processamento acontece no seu navegador e você pode conferir isso desligando a rede. Ainda assim, um JWT é uma credencial ao portador, equivalente a uma senha temporária. O hábito saudável é usar tokens de ambiente de teste em ferramentas de inspeção e, quando um token real for exposto por engano, revogá-lo ou aguardar a expiração.

O que significa encontrar alg com o valor none no cabeçalho?

Significa que o token se declara sem assinatura. É um valor previsto na especificação para casos em que a integridade é garantida por outro meio, mas historicamente ele deu origem a uma falha clássica: bibliotecas que aceitavam o algoritmo declarado pelo próprio token permitiam que um invasor removesse a assinatura. Um verificador correto escolhe o algoritmo esperado antes de olhar o cabeçalho.

Todas as ferramentas

Página de ferramentas →

Todas gratuitas e executadas inteiramente no seu navegador.