CoderTools

Codificador/Decodificador JWT

Decodifique, verifique e gere tokens JWT com segurança

JWT Decodificado

Cabeçalho


                        

Carga Útil


                        

Assinatura


                        

Guia Completo sobre JSON Web Tokens (JWT)

O que é JWT?

JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma maneira compacta e autônoma de transmitir informações com segurança entre as partes como um objeto JSON. Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente.

A Estrutura de um JWT

Um JWT consiste tecnicamente em três partes separadas por pontos (.), que são:

xxxxx.yyyyy.zzzzz
  • Cabeçalho (Header) : O cabeçalho consiste tipicamente em duas partes: o tipo de token (JWT) e o algoritmo de assinatura usado, como HMAC SHA256 ou RSA.
  • Carga Útil (Payload) : A carga útil contém as reivindicações (claims). Claims são declarações sobre uma entidade (normalmente o usuário) e dados adicionais.
  • Assinatura (Signature) : Para criar a parte da assinatura, você deve pegar o cabeçalho codificado, a carga útil codificada, um segredo, e assiná-los. A assinatura é usada para verificar se a mensagem não foi alterada.

Algoritmos Suportados

Esta ferramenta suporta decodificação e verificação para todos os algoritmos padrão:

  • HS256: HS256 (HMAC SHA-256): Simétrico. Requer uma chave secreta compartilhada.
  • HS384: HS384: Simétrico. Usa hash de 384 bits.
  • HS512: HS512: Simétrico. O mais seguro para assinaturas simétricas.
  • RS256: RS256 (RSA SHA-256): Assimétrico. Chave privada para assinar, pública para verificar.
  • RS384: RS384: Assimétrico.
  • RS512: RS512: Assimétrico.

Entendendo os Claims JWT

Claims são pedaços de informação. Claims registrados padrão incluem:

  • iss (Issuer): iss (Emissor)
  • sub (Subject): sub (Assunto/Usuário)
  • aud (Audience): aud (Público/Destinatário)
  • exp (Expiration Time): exp (Expiração)
  • nbf (Not Before): nbf (Not Before)
  • iat (Issued At): iat (Emitido em)
  • jti (JWT ID): jti (ID do JWT)

Quando usar JWT?

  • Autorização: Cenário mais comum. Após login, cada requisição inclui o JWT para acesso a recursos.
  • Troca de Informações: Transmissão segura com verificação de identidade.
  • Sessões sem estado: JWTs contêm todos os dados do usuário, reduzindo consultas ao banco.
  • SSO Cross-Domain: Ideal para Single Sign-On entre domínios.
  • Segurança de API: Proteção de APIs RESTful.

Melhores Práticas de Segurança: 1. Não coloque dados sensíveis no payload. 2. Sempre verifique a assinatura. 3. Use 'exp' para limitar a vida do token. 4. Use HTTPS. 5. Armazene tokens com segurança (Cookies HttpOnly recomendados).

Referências

Perguntas Frequentes (FAQ)

JWT é criptografia ou codificação?

JWTs padrão são codificados e assinados, NÃO criptografados. O payload é Base64Url, legível por qualquer um. Para ocultar dados, use JWE.

Onde armazenar JWT no cliente?

Cookies `HttpOnly` são geralmente mais seguros que `localStorage` contra XSS.

O que acontece se um JWT for roubado?

O ladrão pode se passar pelo usuário até o token expirar. Use tempos de expiração curtos.

Esta ferramenta envia minhas chaves ao servidor?

Não. Tudo roda no seu navegador via JavaScript.

Posso modificar o payload manualmente?

Pode, mas invalidará a assinatura.

Diferença entre HS256 e RS256?

HS256 é simétrico (chave compartilhada). RS256 é assimétrico (par de chaves).

Menu Rápido

Nenhuma ferramenta recente