Generador HMAC
Firma cualquier mensaje con una clave secreta usando HMAC-SHA256, 384 o 512. No es lo mismo que la verificación de JWT de TokenSmith — esto firma texto plano por su cuenta.
Datos
Firma HMAC
—
Cómo funciona la firma HMAC
HMAC (Hash-based Message Authentication Code, RFC 2104) combina una función hash criptográfica con una clave secreta, de modo que solo quien conoce la clave puede producir una firma válida para un mensaje dado:
mensaje: "The quick brown fox jumps over the lazy dog" secreto: "key" HMAC-SHA256 = f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
Un hash simple (SHA-256 solo) únicamente prueba que un mensaje no fue alterado — cualquiera puede recalcularlo. HMAC además prueba autenticidad: quien lo envió debía conocer la clave compartida. También es estructuralmente resistente a ataques de extensión de longitud que afectan usos ingenuos de hashes Merkle–Damgård como SHA-256 solos. Esta herramienta calcula la firma con crypto.subtle.importKey() / crypto.subtle.sign() nativos del navegador (Web Cryptography API) — sin librerías externas, sin llamadas a un servidor.
Preguntas frecuentes
¿Mi clave secreta se envía a algún servidor?
No. La firma se calcula con la API SubtleCrypto nativa del navegador; el mensaje y la clave nunca salen de tu equipo.
¿En qué se diferencia HMAC de un hash simple como SHA-256?
Un hash simple solo prueba que el mensaje no fue alterado, pero cualquiera puede calcularlo. HMAC combina una clave secreta según RFC 2104, así que solo quien conoce la clave puede producir una firma válida — prueba integridad y autenticidad, y resiste ataques de extensión de longitud que afectan a los hashes simples.
¿Qué algoritmos soporta?
HMAC-SHA256, HMAC-SHA384 y HMAC-SHA512, todos calculados con crypto.subtle.sign() de la Web Cryptography API.
¿Es lo mismo que la verificación de JWT de TokenSmith?
No. TokenSmith verifica o genera un JWT completo (header.payload.signature). Esta herramienta firma cualquier texto plano con HMAC por su cuenta — útil para firmas de webhooks, firma de peticiones a una API, o verificar el ejemplo HMAC de un proveedor contra tu propia implementación.