Generador HMAC — SHA-256, SHA-512 y SHA-1

Calcula firmas HMAC con clave para peticiones de API y webhooks, y comprueba si una firma recibida es válida, usando la Web Crypto API de tu navegador.

Actualizado el
Algoritmo

🔒 Se ejecuta localmente con la Web Crypto API de tu navegador: nada de lo que escribes se envía a un servidor.

Tus datos nunca salen de tu ordenador. Todo se procesa localmente en tu navegador.

Cómo usar: Generador HMAC

  1. Pega el mensaje exactamente como se firma: en webhooks, el cuerpo bruto de la petición.
  2. Introduce la clave secreta y elige su codificación.
  3. Elige el algoritmo de hash; el HMAC se actualiza al instante.
  4. Pega una firma recibida en Firma esperada para verificarla.

¿Qué es HMAC?

HMAC (Hash-based Message Authentication Code, RFC 2104) combina una clave secreta con una función hash para producir una firma. Cualquiera que tenga la clave puede calcular el mismo valor; quien no la tenga no puede falsificarlo. Las APIs usan HMAC para firmar peticiones (AWS Signature v4, muchas pasarelas de pago) y los webhooks lo usan para que puedas demostrar que una llamada realmente vino del emisor.

Verificar webhooks

ServicioCabeceraAlgoritmo / codificación
GitHubX-Hub-Signature-256HMAC-SHA256, hex, con prefijo sha256=
StripeStripe-SignatureHMAC-SHA256 en hex de timestamp.body
ShopifyX-Shopify-Hmac-Sha256HMAC-SHA256, Base64
SlackX-Slack-SignatureHMAC-SHA256 en hex de v0:timestamp:body

El motivo más habitual por el que una firma no coincide es que el cuerpo cambió antes de firmarlo: JSON parseado y vuelto a serializar, otros espacios o finales de línea distintos. Firma siempre los bytes brutos que recibiste. El verificador de arriba acepta hex (con o sin sha256=), Base64 y Base64url.

HMAC frente a hashes simples

Un hash SHA-256 simple demuestra integridad, pero no autenticidad: cualquiera puede recalcularlo tras modificar el mensaje. HMAC incluye el secreto, así que solo quienes tienen la clave pueden generar un valor válido. Usa una clave con al menos tantos bytes aleatorios como la salida del hash (32 para SHA-256). En código de servidor, compara las firmas con una función de tiempo constante como crypto.timingSafeEqual.

Para hashes sin clave, usa el generador de hash; para tokens firmados, el codificador JWT.

También se busca como: hmac sha256, hmac online, hmac sha256 online, firma webhook, hmac sha512, verificar hmac.

Herramientas que combinan con: Generador HMAC

  • Decodificador JWT — Pega un token web JSON para examinar su encabezado y su carga útil, comprobar cuándo caduca y verificar su firma.
  • Codificación y descodificación Base64 — Convierte texto a Base64 y viceversa con compatibilidad total con UTF-8 (acentos, emojis), cambia a Base64 compatible con URL o arrastra un archivo para obtener su cadena Base64 o su URI de datos.
  • Cifrar y descifrar AES — Protege una nota, un secreto o un valor de configuración con una contraseña usando AES-256, o descifra texto generado con openssl enc.
  • Validador de IBAN — Comprueba si un IBAN es válido antes de enviar dinero o guardarlo: el país, la longitud que corresponde a ese país, el formato de la cuenta y el checksum mod-97.

Preguntas frecuentes

¿Por qué mi HMAC no coincide con la firma del webhook?
Normalmente el mensaje es distinto: el cuerpo debe ser los bytes brutos recibidos, no JSON parseado y vuelto a convertir en texto. Comprueba también el algoritmo, la codificación de la clave y cualquier prefijo como sha256=.
¿HMAC-SHA1 sigue siendo seguro?
HMAC-SHA1 sigue considerándose seguro para autenticación, a diferencia del SHA-1 simple para firmas, pero los sistemas nuevos deberían usar HMAC-SHA256.
¿Se envía mi clave secreta a algún sitio?
No. El HMAC se calcula en tu navegador con la Web Crypto API.
¿Cuál es la diferencia entre la salida en hex y en Base64?
Codifican los mismos bytes de forma distinta. En hex, SHA-256 ocupa 64 caracteres; en Base64, 44. Usa el formato que espere el sistema receptor.
¿Puedo instalar Generador HMAC como aplicación web y utilizarla sin conexión?
Sí. Generador HMAC es una aplicación web instalable (PWA): se instala desde el navegador, no se descarga desde una tienda de aplicaciones. Haz clic en «Instalar aplicación» en la parte superior de esta página en Chrome o Edge (Windows, macOS, Linux, ChromeOS) o, en Android, utiliza «Compartir» → «Añadir a la pantalla de inicio» en iPhone y iPad, o «Archivo» → «Añadir al Dock» en Safari 17+ en un Mac. A continuación, se abrirá en su propia ventana con su propio icono y, como se ejecuta íntegramente en tu navegador, seguirá funcionando sin conexión. Firefox en el ordenador de sobremesa no permite instalar aplicaciones web. Cómo funciona la instalación.

Herramientas relacionadas