ESC

Generador HMAC

La salida HMAC aparecera aqui...

Comparar HMAC

Todo el procesamiento ocurre en su navegador usando la API Web Crypto. No se envian datos a ningun servidor.

Ejemplos de Uso

Autenticacion API

Genere firmas HMAC para autenticacion de solicitudes API, comun en APIs REST.

Verificacion Webhook

Verifique cargas webhook comparando firmas HMAC de servicios como Stripe o GitHub.

Firma JWT

Cree firmas HMAC-SHA256 para firma de carga util JSON Web Token (JWT).

Caracteristicas

Multiples Algoritmos

Soporte para HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 y HMAC-SHA1

Comparacion HMAC

Compare el HMAC generado con un valor esperado para verificar la integridad del mensaje

Multiples Formatos

Salida en hexadecimal o codificacion Base64 para diferentes necesidades de integracion

API Web Crypto

Usa la API Web Crypto nativa para generacion HMAC segura basada en navegador

Como Usar?

1

Ingrese Mensaje y Clave

Escriba o pegue su mensaje e ingrese su clave secreta.

2

Seleccione Algoritmo

Elija su algoritmo HMAC (SHA-256, SHA-384, SHA-512 o SHA-1) y formato de salida.

3

Genere y Copie

Haga clic en Generar HMAC y copie el resultado.

Preguntas Frecuentes

HMAC (Hash-based Message Authentication Code) combina una funcion hash criptografica con una clave secreta para producir una firma. Demuestra tanto la integridad (el mensaje no fue alterado) como la autenticidad (el emisor conoce la clave secreta). Sin la clave, nadie puede falsificar un HMAC valido, lo que lo hace mucho mas robusto que un hash simple para fines de autenticacion.

Un hash SHA-256 de "hello" es siempre el mismo: cualquiera puede calcularlo. Un HMAC-SHA256 de "hello" produce un resultado diferente para cada clave secreta. El hash simple da integridad (detecta manipulaciones). HMAC da integridad mas autenticacion (prueba quien firmo). Por eso las APIs usan HMAC para firmar solicitudes, no SHA-256 simple.

HMAC-SHA256 es el estandar de la industria y lo que usa la mayoria de servicios: AWS Signature Version 4, webhooks de Stripe, webhooks de GitHub, webhooks de Shopify. HMAC-SHA512 ofrece mayor margen de seguridad y es mas rapido que SHA-256 en hardware de 64 bits. Evita HMAC-SHA1 en proyectos nuevos; usalo solo al integrarte con sistemas heredados que lo requieran.

Ambas representan el mismo valor HMAC en distintas codificaciones. Hex (hexadecimal) produce 64 caracteres para HMAC-SHA256, mas facil de leer y comparar manualmente. Base64 produce 44 caracteres, mas compacto, usado comunmente en cabeceras HTTP Authorization, firmas JWT y cabeceras de solicitudes API. Verifica que formato espera tu servicio destino antes de generar.

Cuando recibes un webhook de Stripe, el payload viene con una cabecera X-Stripe-Signature que contiene un HMAC-SHA256 del cuerpo en bruto, firmado con la clave secreta de tu endpoint. Para verificar: calcula el HMAC-SHA256 del cuerpo en bruto de la solicitud usando tu secreto, luego comparalo con el valor de la cabecera. Si coinciden, el webhook es autentico. GitHub usa X-Hub-Signature-256 de la misma forma. Esta herramienta te permite calcular y verificar estas firmas sin escribir codigo.

Para HMAC-SHA256, la longitud recomendada es de al menos 32 bytes (256 bits), igual al tamano de salida del hash. Claves mas cortas reducen la seguridad; claves mas largas son validas. Nunca uses cadenas memorables como claves, son demasiado predecibles. Genera claves con un RNG criptograficamente seguro y guardalas en variables de entorno o un gestor de secretos, nunca en el codigo fuente.

Genera un HMAC, luego pega un valor HMAC esperado en el campo Comparar. La herramienta compara los dos valores e indica si coinciden. Util para verificar firmas de webhooks: calcula el HMAC esperado a partir del payload recibido y tu clave, luego comparalo con la firma en la cabecera de la solicitud. Una coincidencia confirma que el webhook es autentico.

Nunca. Toda la generacion de HMAC usa la Web Crypto API (window.crypto.subtle.sign), que se ejecuta completamente en tu navegador. Tu clave, mensaje y resultado HMAC nunca se transmiten a ningun servidor. Puedes desconectarte de internet y la herramienta funciona igual.

Que es HMAC?

HMAC significa Codigo de Autenticacion de Mensaje basado en Hash. Combina una funcion hash criptografica (como SHA-256) con una clave secreta para producir una firma que demuestra tanto la integridad como la autenticidad de un mensaje. A diferencia de un hash simple, HMAC asegura que solo alguien que conoce la clave secreta podria haber generado el codigo - por eso es la base de la autenticacion API, verificacion de webhooks y firma JWT.

Donde veras HMAC en el mundo real

Si has integrado con Stripe, GitHub o AWS, has usado HMAC. Stripe firma los payloads de webhook con HMAC-SHA256 para que puedas verificar que realmente vinieron de Stripe. AWS usa HMAC-SHA256 en Signature Version 4 para firmar peticiones API. Los JWTs con algoritmo HS256 son literalmente HMAC-SHA256. Esta herramienta te permite generar y verificar estas firmas sin escribir codigo.

HMAC vs hash simple

Un hash SHA-256 de "hello" siempre es el mismo sin importar quien lo computo. Un HMAC-SHA256 de "hello" es diferente para cada clave secreta - asi que demuestra que el mensaje no fue alterado Y que fue creado por alguien que conoce la clave. Esta es la diferencia critica: el hash te da integridad, HMAC te da integridad mas autenticacion.

Eligiendo el algoritmo correcto

HMAC-SHA256 es el estandar de la industria y lo que deberias usar salvo razon especifica. HMAC-SHA384 y HMAC-SHA512 producen salidas mas largas para margenes de seguridad mayores. HMAC-SHA1 se soporta para compatibilidad con sistemas antiguos pero no deberia usarse en implementaciones nuevas.

Seguridad y privacidad

Esta herramienta se ejecuta completamente en tu navegador usando la Web Crypto API - la misma implementacion criptografica que maneja TLS. Tu clave secreta nunca toca un servidor. Puedes verificarlo ejecutando la herramienta offline.

Seguridad y Privacidad

La seguridad de tus datos es nuestra prioridad

Procesamiento Local

Todo el procesamiento ocurre en tu navegador

Sin Transferencia de Datos

Tus datos no se envían a nuestros servidores

Sin Almacenamiento de Datos

No se almacenan ni comparten datos

Cifrado SSL

Cifrado SSL para conexión segura

Siguiente Paso

También en MoreOnlineTools