Decodificador JWT

Decodifique cabeçalhos e cargas úteis de JWT instantaneamente, direto no seu navegador.

Cole seu JWT
Pronto. Cole um JWT para decodificá-lo.

Seu token é decodificado diretamente no seu navegador. Nada é enviado para o BroBroGo.

FAQ

É seguro colar meu JWT aqui?

Sim. A decodificação ocorre inteiramente no seu navegador — seu token nunca é enviado para o BroBroGo.

Esta ferramenta verifica a assinatura?

Não. Ele apenas decodifica o cabeçalho (header) e a carga útil (payload) para leitura. A verificação de assinatura exige o segredo de assinatura ou chave pública, informações que esta ferramenta nunca solicita.

Como sei se meu token expirou?

O decodificador lê a propriedade exp e exibe um indicador de status — válido, expirado, ainda não válido ou sem expiração — ao lado do token decodificado.

Estrutura e funcionamento de um JSON Web Token (JWT)

Um JSON Web Token (JWT) é um padrão aberto (RFC 7519) utilizado para compartilhar declarações de segurança entre duas partes. O token é composto por três partes distintas, separadas por pontos (.): o cabeçalho (header), a carga útil (payload) e a assinatura (signature).

A estrutura visual de um JWT segue o formato:

header.payload.signature

Cada uma dessas partes desempenha um papel específico na transmissão de dados:

  • Cabeçalho (Header): Contém metadados sobre o token, tipicamente especificando o tipo de token e o algoritmo de assinatura utilizado.
  • Carga útil (Payload): Contém as declarações (claims), que são informações sobre uma entidade (geralmente o usuário) e dados adicionais.
  • Assinatura (Signature): Utilizada para verificar se a mensagem não foi alterada ao longo do caminho.

O Decodificador JWT lê essa estrutura de três partes separadas por pontos para extrair e apresentar as informações legíveis contidas no cabeçalho e na carga útil.

O cabeçalho do JWT e suas propriedades

O cabeçalho é a primeira parte do token e fornece as instruções de processamento para quem recebe o JWT. Ele é codificado em formato Base64URL antes da transmissão. Quando decodificado, o cabeçalho revela um objeto JSON com propriedades específicas.

As propriedades mais comuns encontradas no cabeçalho são:

  • alg (Algoritmo): Define o algoritmo de criptografia ou hash utilizado para criar a assinatura, como HS256 (HMAC com SHA-256) ou RS256 (RSA com SHA-256).
  • typ (Tipo): Declara o tipo de mídia do token completo. No caso de um JSON Web Token, o valor padrão é frequentemente JWT.

O Decodificador JWT extrai essas informações e exibe o resultado formatado como JSON no campo Cabeçalho (Header), além de destacar o Algoritmo e o Tipo em campos dedicados.

A carga útil (payload) e o controle de tempo

A carga útil contém as declarações (claims) que transmitem os dados reais da aplicação. Assim como o cabeçalho, a carga útil é codificada em Base64URL e estruturada em formato JSON. As declarações são divididas em três categorias: registradas, públicas e privadas.

As declarações registradas mais importantes para o controle de tempo e validade do token são:

  • iat (Issued At): Indica o momento exato em que o token foi emitido, representado no formato de timestamp Unix.
  • exp (Expiration Time): Define o limite de tempo após o qual o token não deve mais ser aceito para processamento, também em timestamp Unix.

O decodificador processa essas propriedades para exibir os valores legíveis em Emitido em e Expira em, além de calcular o estado atual do token.

Regras de validação e tratamento de erros

Para que a decodificação ocorra com sucesso, o token inserido deve cumprir requisitos estruturais rígidos. O Decodificador JWT aplica validações automáticas e exibe mensagens de erro específicas caso o input apresente falhas:

Cenário de Entrada Comportamento ou Mensagem de Erro Exibida
Entrada vazia Permanece no estado "Pronto. Cole um JWT para decodificá-lo."
Formato sem três partes separadas por pontos "JWT inválido — são esperadas três partes separadas por pontos."
Cabeçalho com codificação Base64URL corrompida "Não foi possível decodificar o cabeçalho — Base64URL inválido."
Carga útil com codificação Base64URL corrompida "Não foi possível decodificar a carga útil — Base64URL inválido."
Cabeçalho decodificado que não é um JSON válido "O cabeçalho não é um JSON válido."
Carga útil decodificada que não é um JSON válido "A carga útil (payload) não é um JSON válido."
Comprimento do token excessivamente longo "O comprimento excede o limite de um JWT real."

Quando ocorre qualquer um dos erros listados acima, as áreas destinadas à exibição dos dados decodificados são ocultadas automaticamente para evitar a exibição de dados inconsistentes. Ao acionar a função Limpar, o foco do cursor retorna imediatamente para o campo de entrada Cole seu JWT.

Avaliação de status e a claim de expiração

O decodificador analisa a presença e o valor da claim exp (tempo de expiração) na carga útil para determinar a validade temporal do token. Essa análise resulta em um dos seguintes indicadores de status:

  • Válido: O horário atual do sistema é anterior ao valor definido na claim exp.
  • Expirado: O horário atual do sistema ultrapassou o valor definido na claim exp.
  • Ainda não é válido: O horário atual é anterior ao momento de emissão ou início de validade do token.
  • Sem expiração: O token não possui a claim exp em sua carga útil.

É importante destacar que a ferramenta exibe o aviso "Isso verifica apenas a claim exp — não verifica a assinatura, o emissor ou o público-alvo.".

Decodificação versus verificação de assinatura

Existe uma diferença fundamental entre decodificar um JWT e verificar a sua assinatura.

A decodificação é apenas a reversão da codificação Base64URL. Como o Base64URL não é um método de criptografia, qualquer pessoa que tenha acesso ao token pode decodificar seu conteúdo e ler as informações estruturadas em JSON. Esta ferramenta realiza exclusivamente a decodificação.

A verificação, por outro lado, exige a validação da assinatura do token. Para verificar se o conteúdo do JWT não foi alterado por terceiros, é necessário aplicar o algoritmo criptográfico especificado no cabeçalho utilizando o segredo de assinatura (para algoritmos simétricos como HMAC) ou a chave pública correspondente (para algoritmos assimétricos como RSA).

Como esta ferramenta não realiza a verificação de assinatura, ela não solicita, não armazena e não processa chaves públicas ou segredos de assinatura.

Privacidade e processamento local

O processamento dos dados inseridos no Decodificador JWT ocorre inteiramente no navegador do usuário. A decodificação das strings em Base64URL e a conversão em objetos JSON são executadas localmente pelo motor de JavaScript do próprio navegador. Nenhum dado, token ou informação pessoal é enviado para os servidores do BroBroGo.

Perguntas Frequentes (FAQ)

É seguro colar meu JWT aqui?
Sim. A decodificação ocorre inteiramente no seu navegador — seu token nunca é enviado para o BroBroGo.

Esta ferramenta verifica a assinatura?
Não. Ele apenas decodifica o cabeçalho (header) e a carga útil (payload) para leitura. A verificação de assinatura exige o segredo de assinatura ou chave pública, informações que esta ferramenta nunca solicita.

Como sei se meu token expirou?
O decodificador lê a propriedade exp e exibe um indicador de status — válido, expirado, ainda não válido ou sem expiração — ao lado do token decodificado.