Saltar al contenido

Generador de HMAC

HMAC Generator

Calcula el HMAC de un mensaje con el hash y la codificación de clave que elijas, para comprobar firmas de webhooks.

Calcula un HMAC —un digest con clave— sobre un texto o un archivo, con la clave leída como texto, hexadecimal o Base64. Es la misma pantalla que la herramienta de hash con su mitad HMAC activada, porque un HMAC es un hash con una clave y separarlos significaría dos páginas que comparten todos los controles.

🔒 Se ejecuta por completo en tu navegadorhmacsignaturewebhookcrypto
Salida

Entrada

Suelta un archivo para sacarle la suma de verificación

Se lee en esta pestaña. No se sube nada.

El texto se hashea como bytes UTF-8, que es lo que cualquier otra herramienta quiere decir con hashear una cadena.

Resúmenes

Pega una suma de verificación publicada; se ilumina la fila que coincide.

Una fila por algoritmo, con el resumen y un botón de copiar.
AlgoritmoResumenCopiar
MD5Construir colisiones sale barato. Vale como suma de verificación, no para firmas ni contraseñas.
SHA-1Ya se han demostrado colisiones. Vale para una suma de verificación heredada, para nada nuevo.
SHA-256
SHA-384
SHA-512
CRC-32Es un código detector de errores, no un hash. Dos archivos pueden compartir uno por accidente, no digamos a propósito.

Entrada

0 B

Origen

cuadro de texto

Cómo se usa

  1. Activa HMAC

    Aparece el campo de clave, y CRC-32 desaparece de la tabla: es una suma de verificación, no una función hash, y no tiene HMAC.

  2. Indica cómo debe leerse la clave

    Aquí es donde los HMAC suelen salir mal. Una clave escrita como `0a1b2c` son tres bytes como hexadecimal y seis como texto, y las dos producen digests completamente distintos.

  3. Compara con la firma que te enviaron

    Pégala en el cuadro de comparar; la fila que coincida se ilumina. Las firmas de webhook de Stripe, GitHub y Slack son todas HMAC-SHA256 sobre una cadena concreta, así que acertar con el mensaje importa tanto como la clave.

Preguntas frecuentes

¿Por qué mi HMAC no coincide con el de la cabecera?

Normalmente es el mensaje, no la clave. Una firma de webhook se calcula sobre una cadena exacta —a menudo la marca de tiempo, un separador y el cuerpo en bruto—, y un cuerpo que ha pasado por un parser JSON y se ha vuelto a serializar es una cadena distinta. Firma los bytes que recibiste.

¿HMAC es lo mismo que hacer el hash de la clave y el mensaje juntos?

No, y ese es su sentido. `hash(key + message)` es vulnerable a un ataque de extensión de longitud en MD5, SHA-1 y SHA-256; la construcción de dos pasadas de HMAC con el relleno interior y exterior es lo que lo elimina. Nunca construyas el tuyo.

¿La clave sale de la pestaña?

No. Se usa para importar una clave de WebCrypto en esta pestaña y nada más: no se transmite, no se guarda, no se pone en la URL. Recargar la página la pierde, que es el comportamiento correcto para un secreto.

¿Qué longitud debería tener la clave?

Al menos tanto como el digest: 32 bytes para SHA-256. HMAC acepta cualquier longitud, pero una clave más larga que el tamaño de bloque se reduce primero con un hash, y una clave corta es simplemente una clave corta: la seguridad es la entropía que pones.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.