¿Qué es Generador de HMAC?

Un generador de HMAC crea códigos de autenticación de mensajes basados en hash con clave, usando una clave secreta y un algoritmo de hash (SHA-256, SHA-512, etc.). Los HMAC verifican tanto la integridad como la autenticidad de los datos, y se usan habitualmente en la autenticación de APIs, firmas de webhooks y tokens JWT.

HMAC mezcla una clave secreta dentro del hash, de modo que solo quien posee esa clave puede verificar la firma. La herramienta admite SHA-1, SHA-256, SHA-384 y SHA-512 con salida hex, Base64, Base64URL o binario sin procesar, además de preajustes de un clic para los webhooks de GitHub, Stripe, Slack y Shopify que rellenan el algoritmo y el prefijo del encabezado correctos. El mensaje puede escribirse como texto plano o pegarse ya codificado en hex, Base64 o Base64URL: se decodifica a bytes sin procesar antes de firmar. Un recuento de bytes en vivo señala las claves más cortas que los 32 bytes seguros para producción, la firma se recalcula mientras escribes y un campo de verificación tolera los prefijos sha256= o v0= que envían esos proveedores. El mensaje y la clave se procesan en tu dispositivo.

Cómo usar

  1. Paso 1 — Ingresa tu mensaje y la clave secreta.
  2. Paso 2 — Elige un preajuste de webhook (GitHub, Stripe, Slack, Shopify) o define tú mismo el algoritmo de hash (SHA-1, SHA-256, SHA-384 o SHA-512) y la codificación de salida (hex, Base64, Base64URL o binario). Para pegar una carga ya codificada, cambia la entrada del mensaje a Hex o Base64.
  3. Paso 3 — Copia la firma HMAC generada para usarla en encabezados de API o en la verificación de webhooks.

Cuándo usar

  • Firmar payloads de webhook para que el receptor compruebe que vienen de ti y no se han modificado.
  • Generar firmas para AWS Signature Version 4 u otros esquemas de autenticación de API.
  • Producir firmas JWT con los algoritmos HS256, HS384 o HS512.

Resultado

Tu API de pagos requiere solicitudes firmadas con HMAC-SHA256. Ingresa el cuerpo de la solicitud como mensaje, tu secreto de API como clave y copia la firma resultante en el encabezado X-Signature.

Preguntas frecuentes

¿En qué se diferencia HMAC de un simple SHA-256 sobre message+key?
HMAC usa un esquema concreto de doble hash con claves rellenadas por dentro y por fuera. Eso protege contra ataques de extensión de longitud que sí afectan a construcciones ingenuas tipo hash(clave‖mensaje) basadas en SHA-1 o SHA-256.
¿Hex o Base64 en la salida?
El que pida el API o el proveedor del webhook. Hex es común en cabeceras HTTP (Stripe, GitHub), Base64 lo es en cuerpos JSON y JWT. La firma es la misma; solo cambia la codificación.
¿Qué longitud debe tener la clave secreta?
Al menos 32 bytes (256 bits) de datos aleatorios, idealmente de una fuente criptográfica. Más corto debilita; más largo que el tamaño de bloque del hash (64 bytes para SHA-256) no aporta porque HMAC lo reduce internamente.
¿Por qué mi firma no coincide con la del API?
Casi siempre es una diferencia en lo que se firma. Espacios, finales de línea, orden exacto de los parámetros de consulta, URL encoding y si se incluye o no el timestamp importan. Reproduce la receta del proveedor byte a byte.
¿Sigue siendo seguro HMAC-SHA1?
Para sistemas nuevos prefiere HMAC-SHA256 o superior. HMAC-SHA1 sigue siendo técnicamente seguro porque la construcción no depende de resistencia a colisiones, pero migrar fuera de SHA-1 es la opción más sensata a largo plazo.

Herramientas relacionadas