Decodificador JWT: cabeçalho, payload e expiração

Decodifique JSON Web Tokens (JWT) instantaneamente. Visualize cabeçalho e payload com segurança.

Decodificador JWT

Relatar um Problema

Encontrou um bug ou tem uma sugestão para Decodificador JWT: cabeçalho, payload e expiração? Avise-nos!

Como este decodificador de JWT lê um token

Um JSON Web Token reúne três partes em uma única string: cabeçalho, payload e assinatura. Este decodificador separa um token codificado nessas três partes, converte o cabeçalho e o payload de volta em JSON legível e extrai o algoritmo, a data de emissão e a data de expiração, para que você possa inspecionar um token sem escrever código.

Cabeçalho, payload e assinatura

Um token é dividido em três partes por dois pontos: cabeçalho.payload.assinatura. As duas primeiras partes são JSON codificado em base64url, então decodificá-las é uma operação reversível, não uma criptografia. O cabeçalho informa o algoritmo de assinatura, o campo alg, por exemplo HS256 ou RS256, e o tipo do token. O payload carrega os claims: um identificador de assunto, campos próprios da aplicação e, geralmente, iat (momento de emissão) e exp (momento de expiração) armazenados em segundos Unix. A assinatura é um valor criptográfico calculado a partir do cabeçalho e do payload; confirmá-la exige a chave secreta ou privada que a criou, então ler o conteúdo de um token é uma operação diferente de verificar sua autenticidade. Alguns tokens são assinados com alg igual a none e têm apenas duas partes, cabeçalho.payload; o decodificador também aceita essa forma mais curta e deixa o segmento de assinatura vazio. O base64url se diferencia do base64 comum por usar um hífen e um sublinhado no lugar do sinal de mais e da barra, e costuma dispensar o sinal de igual usado como preenchimento.

Exemplo prático

Cole um token como o abaixo e ele se separa em três segmentos coloridos, depois o cabeçalho e o payload aparecem como JSON formatado.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTAyOTM4NDc1IiwibmFtZSI6IkJlYXRyaXogQ29zdGEiLCJpYXQiOjE3MTYzNzkyMDAsImV4cCI6MTcyNDE1NTIwMH0.TpekWUiCNHG5vFG-cwNw5Eb-43g

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

{
  "sub": "6102938475",
  "name": "Beatriz Costa",
  "iat": 1716379200,
  "exp": 1724155200
}

O selo Algorithm mostra HS256, lido do cabeçalho. O valor iat corresponde a 22 de maio de 2024 e o valor exp a 20 de agosto de 2024; como essa data já passou, o selo Status mostra EXPIRED. Nada disso acontece em um servidor: a decodificação roda no navegador, e a ferramenta nunca verifica se a assinatura é autêntica, porque não tem acesso à chave que a criou.

Perguntas Frequentes