Ejemplos
HMAC-SHA256('mensaje', 'clave123') → a3f5e8d9c1b2...JWT firmado: eyJhbGci... (header + payload + HMAC-SHA256)Webhook Stripe: X-Stripe-Signature: t=timestamp,v1=hmacAWS API request: Authorization: AWS4-HMAC-SHA256 Credential=...Cookie Express firmada: session=s%3A...; Signature=hmac_value
Preguntas frecuentes
¿Cuál es la diferencia entre HMAC y un hash simple?
Un hash simple (SHA-256, MD5) es público: cualquiera puede calcularlo. HMAC requiere una clave secreta, entonces solo quien tiene la clave puede generar o verificar el código. Esto previene falsificaciones.
¿HMAC encripta los datos?
No. HMAC solo verifica integridad y autenticidad. El mensaje viaja en claro. Si necesitás confidencialidad, combiná HMAC con encriptación (por ejemplo: encrypt-then-MAC con AES + HMAC).
¿Puedo truncar un HMAC para ahorrar espacio?
Sí, pero con cuidado. HMAC-SHA256 puede truncarse a 128 bits sin perder demasiada seguridad (NIST recomienda mínimo 80 bits). Nunca bajes de 64 bits o te exponés a ataques de fuerza bruta.