HMAC Generator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand HMAC Generator

Calcula un código de autenticación HMAC-SHA256, HMAC-SHA384 o HMAC-SHA512 sobre un mensaje usando una clave secreta compartida.

How it works

HMAC ejecuta el hash dos veces con la clave mezclada en cada pasada, así que producir un código válido exige poseer la clave. Esa es la diferencia frente a un hash simple: cualquiera puede recalcular un resumen SHA-256 sobre datos modificados, lo que hace que un resumen desnudo sea inútil frente a un cambio deliberado, mientras que un HMAC vincula la integridad a la posesión del secreto. La salida tiene el ancho del hash subyacente — 32 bytes para SHA-256, mostrados aquí como 64 caracteres hexadecimales. Esta herramienta trata la clave como texto UTF-8 y firma con WebCrypto.

When to use it

  • Verificar un webhook de GitHub o de Stripe recalculando la firma sobre el cuerpo en bruto de la petición.
  • Depurar AWS Signature V4 o un esquema de firma de peticiones similar cuando el servidor rechaza su firma.
  • Confirmar que una implementación de firma en otro lenguaje produce una salida idéntica byte a byte.
  • Construir a mano el segmento de firma de un JWT HS256 para ver cómo encajan las piezas.
  • Derivar un token determinista e infalsificable a partir del identificador de un registro más un secreto del servidor.

Watch out for

  • Compare los códigos en tiempo constante en el código real. Usar === o una comparación de cadenas normal termina antes en el primer byte distinto, lo que filtra el prefijo correcto a lo largo de muchos intentos; use crypto.timingSafeEqual, hmac.compare_digest o el equivalente de su lenguaje.
  • Firme los bytes en bruto exactos. Analizar el JSON y volver a serializarlo cambia el espacio en blanco y el orden de las claves, y el HMAC no coincidirá. Capture el cuerpo de la petición antes de que lo toque cualquier middleware de análisis del cuerpo.
  • Las codificaciones tienen que encajar. Esta herramienta toma una clave de texto UTF-8 y devuelve hexadecimal. Un proveedor que publica un secreto en base64, o que espera una firma en base64, exige una conversión explícita: la codificación mal emparejada es la causa más habitual de una firma que «debería» coincidir.
  • Un HMAC demuestra origen e integridad, no frescura. Salvo que dentro de los datos firmados haya una marca de tiempo o un nonce y se compruebe, una petición capturada puede reproducirse sin cambios y se verificará.

Not the right tool for: Firmas que terceros deban poder verificar pero no producir. HMAC es simétrico — la clave de verificación es la clave de firma —, así que use un algoritmo asimétrico como RS256 o Ed25519 cuando quien verifica no deba poder falsificar.

Frequently Asked Questions

¿Qué es un código de autenticación de mensajes?

Un código de autenticación de mensajes (MAC) es un valor corto que se añade a un mensaje para verificar tanto su integridad (no se ha modificado) como su autenticidad (procede del emisor esperado, que posee la clave secreta). HMAC es la construcción MAC más extendida: combina una función hash con una clave secreta.

¿Qué es la autenticación de API?

La autenticación de API demuestra la identidad de un cliente ante un servidor antes de concederle acceso. HMAC se usa en los esquemas de firma de API: el cliente calcula el HMAC sobre la petición (método + ruta + cuerpo + marca de tiempo) con una clave secreta compartida y envía el resultado como cabecera. El servidor lo recalcula y lo compara.

¿Qué es HMAC SHA256?

HMAC-SHA256 aplica SHA-256 como función hash dentro de la construcción HMAC. Produce un código de autenticación de 256 bits (32 bytes). Es la opción más habitual para las firmas de webhooks (GitHub, Stripe) y para AWS Signature V4. HMAC-SHA512 produce un código de 512 bits para mayor seguridad.

How to Use HMAC Generator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.