Generador de HMAC

Genera un HMAC-SHA256 (o SHA-1/384/512) a partir de un mensaje y una clave
Local · privado

Sobre esta herramienta

Genera un código HMAC (Hash-based Message Authentication Code) usando SHA-1, SHA-256, SHA-384 o SHA-512 a partir de un mensaje de texto y una clave secreta. HMAC se usa constantemente para firmar solicitudes de API (como las de AWS, Stripe, GitHub webhooks o cualquier integración que use firmas de seguridad), verificar la integridad de mensajes en protocolos de autenticación, y generar tokens de un solo uso. A diferencia de un hash simple, HMAC combina el mensaje con una clave secreta, por lo que solo alguien que conozca la clave puede generar (o verificar) la firma correcta, lo que lo hace mucho más seguro para autenticación que un SHA-256 sin clave. El cálculo usa la API criptográfica nativa del navegador (Web Crypto API), por lo que es rápido, preciso y no envía tu mensaje ni tu clave secreta a ningún servidor externo.

Preguntas frecuentes

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

Un hash como SHA-256 lo puede calcular cualquiera. Un HMAC combina el mensaje con una clave secreta, así que solo quien la conoce puede generar o verificar la firma. Por eso se usa para autenticar peticiones y webhooks.

¿En qué formato sale el resultado y cuánto mide?

En hexadecimal. Mide 40 caracteres con SHA-1, 64 con SHA-256, 96 con SHA-384 y 128 con SHA-512. Si tu servicio espera Base64, tendrás que convertir el resultado.

¿Cómo trata la clave y el mensaje?

Ambos se toman como texto UTF-8, tal como los escribes. Si tu proveedor te da la clave en hexadecimal o en Base64 y espera que se decodifique antes, esta herramienta no lo hace: la usaría como texto literal y la firma no coincidiría.

¿Por qué mi firma no coincide con la del servicio?

Lo más habitual es que el mensaje no sea exactamente el mismo: un espacio, un salto de línea o el orden de los campos cambian por completo el resultado. Comprueba que firmas el cuerpo exacto que se envió, byte por byte, y que el algoritmo es el correcto.

¿Sirve para comprobar firmas de webhooks, como los de Stripe o GitHub?

Sí, para depurar: GitHub firma el cuerpo con HMAC SHA-256 y envía "sha256=" más el resultado. Stripe firma el texto "marca de tiempo.cuerpo". Calcula el HMAC con el mensaje correcto y compáralo con la cabecera. En tu código, usa una comparación en tiempo constante.

¿Es seguro escribir aquí mi clave secreta?

El cálculo se hace en tu navegador con la Web Crypto API y no se envía a ningún servidor. Aun así, la buena práctica es probar con claves de prueba y no pegar secretos de producción en ninguna web.

Herramientas relacionadas

Espacio publicitario