Conversor Gratuito

Decodificador de Token JWT

Decodifique o cabeçalho e a carga útil de um JWT (JSON Web Token) instantaneamente no seu navegador. Gratuito, privado e do lado do cliente — nenhum dado é enviado a qualquer servidor.

Sobre esta ferramenta

JSON Web Tokens (JWT) são um formato compacto e seguro para URL para transmissão de declarações entre duas partes, definido pela RFC 7519. Um JWT consiste em três segmentos codificados em base64url separados por pontos: cabeçalho (algoritmo e tipo de token), carga útil (declarações) e assinatura (prova criptográfica de autenticidade). O cabeçalho e a carga útil são JSON, codificados em base64url para segurança de URL; a assinatura usa um dos vários algoritmos (HS256, RS256, ES256 e outros) sobre o cabeçalho codificado e a carga útil.

A decodificação de um JWT – dividindo-o em segmentos e decodificando cada um em base64 – não requer nenhum segredo. Qualquer pessoa com o texto do token pode ler seu cabeçalho e carga útil. A assinatura, porém, só pode ser verificada com a chave secreta (HMAC) ou pública (assimétrica). A decodificação é para inspeção; a verificação é o que comprova a autenticidade.

Este decodificador divide o token, decodifica cada segmento em base64, analisa o cabeçalho e a carga útil como JSON e mostra o resultado. Ele não tenta a verificação de assinatura porque isso requer a chave secreta ou pública, que o decodificador não possui. A saída decodificada é uma inspeção somente leitura — útil para depuração de tokens, mas não um substituto para a verificação adequada no código do aplicativo.

Por que decodificar JWTs

A depuração de problemas de autenticação quase sempre envolve a inspeção de tokens. Um token que parece válido no código pode ter declarações erradas, um algoritmo inesperado, um carimbo de data/hora expirado ou incompatibilidade de público. A decodificação do token revela exatamente o que o emissor produziu.

A inspeção dos tokens durante o trabalho de integração também ajuda. Ao conectar-se a uma API ou provedor de identidade de terceiros, os nomes, formatos e estrutura reais das declarações são melhor compreendidos pela decodificação de tokens de amostra, em vez de depender de documentação que pode estar desatualizada.

Como usar

Cole o token e obtenha o conteúdo analisado.

  1. Cole seu JWT: Solte o token completo (header.payload.signature) na área de entrada. O decodificador aceita tokens com ou sem o prefixo Bearer opcional.
  2. Inspecione o cabeçalho: O cabeçalho mostra o algoritmo de assinatura (alg) e o tipo de token (typ). Algoritmos comuns são HS256, RS256 e ES256. Fique atento a alg: none, que sinaliza um token não assinado e raramente é seguro na produção.
  3. Inspecione a carga útil: A carga contém as declarações: iss (emissor), sub (assunto), aud (público), exp (expiração), iat (emitido em) e quaisquer declarações específicas do aplicativo. Os carimbos de data/hora padrão são segundos da época Unix.
  4. Verifique separadamente: O decodificador não verifica a assinatura. Para verificar a autenticidade, execute o token por meio de uma biblioteca JWT com o segredo ou a chave pública apropriada no código do seu aplicativo.

Casos de uso comuns

Detalhes técnicos

O formato JWT consiste em três segmentos unidos por pontos. Cada segmento é codificado em base64url - a variante segura de URL de base64 que usa - e _ em vez de + e /, com preenchimento às vezes omitido. A decodificação requer desfazer as substituições seguras de URL, preencher o segmento e decodificar base64.

O cabeçalho e a carga são JSON após a decodificação. O segmento de assinatura é binário (bytes de assinatura brutos) e não é legível por humanos; requer que a chave de verificação seja útil.

Declarações comuns definidas na RFC 7519: iss (emissor), sub (identificador do assunto), aud (público), exp (expiração como segundos da época Unix), nbf (carimbo de data e hora não antes), iat (carimbo de data e hora emitido em), jti (ID de token exclusivo). As declarações específicas do aplicativo podem aparecer com qualquer nome.

Melhores Práticas

Perguntas frequentes

É seguro colar meu JWT aqui?
Sim. A decodificação acontece inteiramente no seu navegador – o token nunca é enviado para nenhum servidor. No entanto, JWTs são credenciais – não os compartilhe publicamente (em capturas de tela, postagens do Stack Overflow etc.), pois eles podem conceder acesso às suas contas.
Esta ferramenta verifica a assinatura JWT?
Esta ferramenta decodifica e exibe o conteúdo do token. A verificação da assinatura requer a chave secreta (HMAC) ou a chave pública (RSA/ECDSA), que deve permanecer no seu servidor. A ferramenta mostra o algoritmo usado, mas não pode verificar sem a chave.
O que significam as declarações JWT padrão?
iss = emissor, sub = assunto (ID do usuário), exp = tempo de expiração (carimbo de data e hora Unix), iat = emitido em, nbf = não antes, aud = público, jti = ID JWT. As declarações personalizadas podem conter quaisquer dados específicos do aplicativo.
Por que alguém pode decodificar um JWT?
JWTs são codificados, não criptografados. A carga útil é codificada em Base64URL (não criptografada), para que qualquer pessoa possa lê-la. A assinatura evita adulteração e não leitura. Nunca armazene dados confidenciais (senhas, SSNs) em cargas JWT.
Por que alguns tokens não têm assinatura?
Tokens com alg: none não possuem assinatura. Eles são JWTs válidos por especificação, mas não oferecem garantias de autenticidade e não devem ser aceitos na produção.
Os JWTs são criptografados?
As cargas JWT padrão são assinadas, mas não criptografadas. JWE (JSON Web Encryption, RFC 7516) é um formato separado para tokens criptografados. A maioria dos JWTs existentes são JWS (somente assinados).
Meu token é carregado em um servidor?
Não. A decodificação acontece no seu navegador; o token não sai do seu dispositivo.
Quanto tempo normalmente duram os JWTs?
Algo entre algumas centenas e vários milhares de caracteres. O comprimento depende do número e tamanho das reivindicações mais o comprimento da assinatura (que depende do algoritmo).