A escolha do algoritmo em um JWT impacta onde a chave mora, como rotacionar credenciais e quem pode verificar o token sem acesso ao segredo mestre.

HS256 (HMAC-SHA256)

  • Simétrico: a mesma chave secreta assina e valida.
  • Prós: simples, rápido, poucos bytes.
  • Contras: todo consumidor precisa do segredo — ruim quando muitos microserviços distintos verificam o mesmo emissor.
  • Mitigação: use apenas em backends fechados ou com cofre de segredos centralizado.

RS256 (RSA + SHA-256)

  • Assimétrico: emissor assina com chave privada; verificadores usam chave pública.
  • Prós: distribui verificação sem vazar segredo de assinatura; combina com JWKS publicado em /.well-known/jwks.json.
  • Contras: tokens e operações um pouco maiores e mais lentos que HMAC.

ES256 (ECDSA P-256 + SHA-256)

  • Assimétrico em curva elíptica.
  • Prós: chaves e assinaturas menores que RSA equivalente em força prática; popular em dispositivos.
  • Contras: implementação e debugging podem ser menos familiares ao time.

Boas práticas comuns

  1. Defina alg fixo no emissor — não aceite none nem troca dinâmica insegura.
  2. Valide iss, aud, exp, nbf sempre no consumidor.
  3. Rotação: mantenha duas chaves públicas ativas durante rollover (kid no header).
  4. Armazenamento: chave privada só em cofre (KMS, HSM, variável de ambiente segura).

Relação com o debugger Cod3x

A ferramenta permite testar HS256, RS256 e ES256 com Web Crypto, inspecionar payload e re-assinar após editar claims de desenvolvimento.

Use apenas dados fictícios ou chaves descartáveis; nunca cole segredos de produção em páginas web.