🔧Toolify

Decodificador de JWT (header, payload, assinatura, expiração)

Cole um JWT para decodificar instantaneamente o header e o payload como JSON. Reconhece claims padrão (iat, exp, nbf) e converte timestamps Unix para ISO 8601. Sinaliza tokens expirados ou ainda não válidos.

Decodificado inteiramente no seu navegador. O token nunca trafega pela rede.

Header

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

Payload

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "iat": 1730000000,
  "exp": 4886000000
}
Assinatura presente
Emitido em (iat)
2024-10-27T03:33:20.000Z
Expira em (exp)
2124-10-30T22:13:20.000Z

Como funciona

Como é um JWT

Um JWT é composto por três segmentos codificados em Base64url separados por pontos: header.payload.signature. Cada segmento é um objeto JSON codificado para transmissão segura em URLs. O header declara o algoritmo de assinatura, o payload carrega os claims (assunto, expiração, dados personalizados) e a assinatura permite ao destinatário verificar a integridade se tiver a chave.

Este decodificador lê apenas os dois primeiros segmentos. A assinatura é o terceiro segmento, mas verificá-la exige a chave secreta/pública — essa é uma operação separada que não realizamos aqui.

Claims padrão que vale conhecer

iss (issuer): quem criou o token. iat (issued at): quando foi criado, como timestamp Unix. exp (expiry): quando deixa de ser válido, também Unix. nbf (not before): o momento mais cedo em que deve ser aceito. sub (subject): a entidade que representa, geralmente um ID de usuário. aud (audience): para quem o token é destinado, geralmente uma URL de serviço.

Nem todos são obrigatórios; JWTs mínimos frequentemente têm apenas sub + iat + exp. Claims personalizados são qualquer outro dado — eles convivem com os padrões no payload.

Por que decodificar ≠ verificar

Qualquer pessoa pode decodificar um JWT — o header e o payload são apenas JSON codificado em Base64. Por isso dizemos 'nunca coloque segredos no payload': eles são efetivamente públicos.

Verificação significa checar a assinatura contra a chave secreta (HMAC) ou chave pública (RSA/ECDSA). Sem verificação, não se pode confiar em nenhum claim dentro do payload — um atacante pode criar qualquer payload que quiser.

Use esta ferramenta para inspecionar tokens durante a depuração. Use uma biblioteca JWT no seu servidor para verificá-los em produção.

Perguntas frequentes

Posso verificar a assinatura aqui?

Não — a verificação precisa da chave secreta ou pública, que nunca deve sair de um ambiente confiável. Use uma biblioteca JWT no servidor (jsonwebtoken para Node, PyJWT para Python, etc.).

O token sai do meu navegador?

Nunca. A decodificação é feita localmente; não temos um endpoint de servidor para recebê-lo.

Por que meu token é 'inválido'?

Causas comuns: copiar e colar adicionou/removeu espaços, falta um dos três segmentos ou um segmento tem Base64url mal formado. Remova os espaços e tente novamente.

O que é Base64url vs Base64?

Base64url substitui '+' por '-', '/' por '_' e remove o preenchimento '=' para que a string codificada seja segura em URLs e headers HTTP. JWTs sempre usam Base64url.

Por que o meu payload Unicode mostra texto bagunçado?

Decodificamos UTF-8, que é o padrão. Se o payload foi codificado de forma diferente, o JSON.parse pode falhar. A maioria dos emissores de JWT codifica corretamente em UTF-8.

HS256 é seguro?

Se o segredo for suficientemente longo (≥256 bits) e mantido em segredo, sim. Vulnerabilidades comuns do HS256 são segredos fracos e aceitar tokens com alg='none'. Use segredos aleatórios de ≥32 caracteres e rejeite 'none' explicitamente.

Por que preferir RS256 ao invés de HS256?

RS256 (RSA assimétrico) permite publicar uma chave pública para verificação enquanto mantém a chave de assinatura privada. HS256 (HMAC simétrico) exige compartilhar o segredo com cada verificador. Para arquiteturas de múltiplos serviços, RS256 é mais seguro.

Posso decodificar tokens enormes?

O limite prático é ~10 MB de entrada; acima disso o navegador pode ficar lento. JWTs geralmente têm menos de 4 KB; se o seu for maior, considere se você não está armazenando dados demais nos claims.

Ferramentas relacionadas

Última atualização:

Experimente nossos prompts de IA →