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
- Defina
algfixo no emissor — não aceitenonenem troca dinâmica insegura. - Valide
iss,aud,exp,nbfsempre no consumidor. - Rotação: mantenha duas chaves públicas ativas durante rollover (kid no header).
- 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.
Abrir gerador de JWT (debug) no Cod3x Tools
Use apenas dados fictícios ou chaves descartáveis; nunca cole segredos de produção em páginas web.