Calcula firmas HMAC-SHA-256 y HMAC-SHA-512 con tu clave secreta — directamente en tu navegador.
HMAC (Hash-based Message Authentication Code, RFC 2104) combina una clave secreta con un mensaje para producir una firma que solo alguien con la misma clave puede reproducir. Es el mecanismo detrás de la mayoría de las verificaciones de webhooks — Stripe, GitHub, Shopify y Slack firman sus cargas de webhook con HMAC-SHA-256 — además de las URLs firmadas, el firmado de peticiones de API y las comprobaciones de integridad de tokens de sesión. Cuando la validación de un webhook falla, calcular a mano la firma esperada con esta herramienta suele ser la forma más rápida de encontrar la discrepancia.
El cálculo usa SubtleCrypto, la API WebCrypto nativa del navegador: la clave se importa con crypto.subtle.importKey y la firma se produce con crypto.subtle.sign, de modo que la criptografía es la implementación auditada del propio navegador y no JavaScript reinventándola. HMAC no es simplemente hash(clave + mensaje): aplica el hash dos veces, mezclando la clave con dos rellenos distintos (mira la fórmula más abajo), lo que cierra los ataques de extensión de longitud que rompen la construcción ingenua. La salida reproduce exactamente los vectores de prueba del RFC 4231.
Tu clave secreta nunca sale del navegador: esta herramienta no hace peticiones de red, no sube nada y no almacena nada — puedes confirmarlo en la pestaña de red de las herramientas de desarrollo de tu navegador. Dos notas prácticas para código en producción: compara siempre las firmas con una comparación de tiempo constante para evitar ataques de temporización, y asegúrate de que ambos lados firman exactamente los mismos bytes — un salto de línea invisible al final o un cuerpo JSON reserializado es la causa más común de HMACs que no coinciden.
HMAC(K, m) = H((K xor opad) || H((K xor ipad) || m)), donde H es la función hash e ipad (byte 0x36) y opad (byte 0x5c) se repiten hasta el tamaño de bloque del hash. El doble hash anidado evita los ataques de extensión de longitud que rompen las construcciones ingenuas hash(clave + mensaje).
Demuestra que un mensaje proviene de alguien que posee la clave secreta y que no fue alterado en tránsito. Usos típicos: verificar cargas de webhooks (Stripe, GitHub, Shopify), firmar peticiones de API y proteger URLs o cookies contra manipulación.
No. La clave y el mensaje se procesan 100% localmente con la API WebCrypto de tu navegador — nada se transmite, se registra ni se almacena en ningún lugar.
Casi siempre es una diferencia de codificación: un salto de línea al final, un cuerpo JSON reserializado, UTF-8 frente a otra codificación, o una salida en hexadecimal comparada con Base64. Firma exactamente los mismos bytes con la misma clave y las firmas coincidirán.
Ambos se consideran seguros. HMAC-SHA-256 es el estándar de la industria y lo que usan la mayoría de los proveedores de webhooks; elige HMAC-SHA-512 cuando el lado receptor espere una firma de 128 caracteres.
No. HMAC autentica un mensaje pero no lo oculta — cualquiera puede seguir leyendo el contenido. Usa cifrado para la confidencialidad y HMAC (o ambos, como en el cifrado autenticado) para la integridad y la autenticidad.
Vai.la convierte cualquier URL en un enlace corto con estadísticas de clics, código QR y tu propio biolink.
Vai.la no se hace responsable del uso de las herramientas ni de las decisiones tomadas a partir de sus resultados.