DevToolPal
ES

Generador de HMAC

Calcula HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 y HMAC-SHA512 de un mensaje con una clave secreta, en hexadecimal o Base64.

Se ejecuta en local, nunca se sube

Opciones

Formato de la clave
Salida

Mensaje

0 caracteres · 0 B

HMAC

El resultado aparece aquí

Qué hace

HMAC (código de autenticación de mensajes basado en hash, RFC 2104) combina una clave secreta con una función hash para firmar un mensaje. El receptor, que conoce la misma clave, vuelve a calcular el HMAC y lo compara con el recibido. Si el mensaje se modificó o el remitente no conocía la clave, los valores no coinciden.

Los HMAC están en todas partes: firmas de webhooks (GitHub, Stripe, Slack), peticiones de API firmadas, JWT con HS256, firma de cookies y contraseñas de un solo uso. Esta herramienta calcula a la vez HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 y HMAC-SHA512, para que compares con el que use tu sistema.

Cómo usarla

  1. Escribe la Clave secreta. Cambia el Formato de la clave si la clave viene en bytes hex o Base64 en lugar de texto.
  2. Pega el Mensaje o pulsa Ejemplo.
  3. Todos los HMAC se actualizan al escribir. Elige salida Hex o Base64 y copia el valor que necesites.

El mensaje se codifica en UTF-8 tal como lo escribes, incluidos espacios y saltos de línea.

Ejemplo

Con la clave key y el mensaje The quick brown fox jumps over the lazy dog, el HMAC-SHA256 es f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8. Puedes comprobarlo en la línea de comandos:

echo -n "The quick brown fox jumps over the lazy dog" | openssl dgst -sha256 -hmac "key"

Fíjate en -n: sin él, echo añade un salto de línea y el HMAC cambia.

Verificar webhooks

Para verificar un webhook, toma el cuerpo original de la petición antes de analizar el JSON, construye la cadena que indica el proveedor (a menudo timestamp.body), calcula el HMAC con tu secreto de firma y compáralo con la cabecera de firma. En tu código, compara firmas con una función de tiempo constante para evitar ataques de temporización.

Preguntas frecuentes

› ¿Qué diferencia hay entre un hash y un HMAC?

Cualquiera puede calcular un hash simple como SHA-256. Un HMAC mezcla una clave secreta en el hash, así que solo quien conoce la clave puede generar o comprobar el valor. Es un código de autenticación de mensajes, no solo una suma de verificación.

› ¿Qué algoritmo HMAC debo usar?

HMAC-SHA256 es la opción habitual y la que esperan la mayoría de las API y webhooks. HMAC-SHA512 también sirve. HMAC-MD5 y HMAC-SHA1 siguen considerándose seguros como MAC, pero úsalos solo cuando un sistema antiguo los exija.

› ¿Por qué mi HMAC no coincide con el de mi servidor?

Revisa los bytes exactos del mensaje (un salto de línea final o un espaciado JSON distinto lo cambia todo), el formato de la clave (texto, hex o Base64) y la codificación de salida. Los proveedores de webhooks suelen firmar una cadena formada por una marca de tiempo y el cuerpo original de la petición.

› ¿Se guarda o se envía mi clave secreta?

No. El HMAC se calcula en tu navegador. La clave solo vive en la memoria de esta página: no se guarda, no se escribe en la barra de direcciones y no se incluye en los enlaces para compartir.