¿Qué es HMAC?
HMAC (Código de Autenticación de Mensaje Basado en Hash) es un mecanismo criptográfico que combina una clave secreta con una función hash para producir un código de autenticación. Proporciona tanto integridad de datos como autenticación — asegurando que un mensaje no ha sido alterado y fue enviado por alguien que conoce la clave secreta.
Casos de Uso Comunes
Verificación de Webhooks
Autenticación de API
Firma de JWT
Integridad del Mensaje
Cómo Funciona HMAC
HMAC toma dos entradas — una clave secreta y un mensaje — y las ejecuta a través de una función hash (como SHA-256) de una manera específica que hace que sea computacionalmente imposible falsificar sin conocer la clave.
HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m))
Donde:
Hes la función hash (p. ej., SHA-256)Kes la clave secretames el mensaje a autenticaropadyipadson constantes de relleno que aseguran la seguridad
Cómo Usar este Generador HMAC
Elige un Algoritmo
Selecciona tu algoritmo HMAC del menú desplegable. SHA-256 está seleccionado por defecto y se recomienda para la mayoría de casos de uso. MD5 y SHA-1 están disponibles para compatibilidad heredada pero marcados como no seguros.
Ingresa tu Clave Secreta
Escribe o pega tu clave secreta en el campo de entrada de clave. Si tu clave está en formato binario, usa el selector de tipo de entrada para cambiar entre codificación String, Hex o Base64.
Ingresa tu Mensaje
Ingresa el mensaje que deseas autenticar. Como la clave, puedes cambiar el tipo de entrada si tu mensaje está codificado en hex o base64.
Obtén tu HMAC
El HMAC se genera automáticamente mientras escribes. Tanto las salidas Hex como Base64 se muestran simultáneamente. Haz clic en el botón de copiar junto a cualquiera de las salidas para copiarla a tu portapapeles.
Verificar un HMAC
Para comparar tu HMAC generado con un valor esperado, activa la casilla Verificar HMAC. Pega el HMAC esperado — la herramienta acepta tanto formatos hex como base64 y muestra un distintivo de Coincidencia o No Coincidencia al instante.
Características
8 Algoritmos HMAC
Genera códigos HMAC con una amplia gama de algoritmos hash para coincidir con cualquier requisito de integración:
SHA-256 Recomendado
La opción estándar para webhooks, APIs y JWT (HS256). Proporciona excelente seguridad con salida de 256 bits.
SHA-512
Mayor seguridad con salida de 512 bits. Ideal para aplicaciones que requieren máxima fortaleza criptográfica.
SHA-384 y SHA-224
Variantes alternativas de SHA-2 que ofrecen salidas de 384 bits y 224 bits para requisitos de seguridad específicos.
SHA3-256 y SHA3-512
Algoritmos SHA-3 de última generación basados en el algoritmo Keccak, ofreciendo estándares criptográficos modernos.
Formatos de Entrada Flexibles
Tanto la clave secreta como el mensaje aceptan tres tipos de entrada, esencial cuando se trabaja con claves binarias de APIs o se depuran discrepancias de codificación:
String (UTF-8)
Hex
Base64
Visualización de Salida Dual
Ve ambas representaciones Hex y Base64 de tu HMAC al mismo tiempo — sin necesidad de cambiar. Un alternador de mayúsculas te permite cambiar la salida hex entre minúsculas y mayúsculas.
Formato Hexadecimal
- Representación más larga
- Más fácil de leer y depurar
- Dos caracteres por byte
- Alternancia de mayúsculas/minúsculas
Formato Base64
- 33% más compacto
- Común en encabezados HTTP
- Usado en tokens JWT
- Variantes seguras para URL disponibles
Verificación HMAC
El modo de verificación integrado te permite pegar un valor HMAC esperado y ver al instante si coincide con tu salida generada. Soporta tanto formatos hex como base64 y normaliza espacios en blanco y mayúsculas/minúsculas para comparación hex.
Validación Instantánea
Comparación en tiempo real con distintivos de Coincidencia/No Coincidencia mientras escribes.
Flexibilidad de Formato
Acepta automáticamente formatos de entrada hex y base64.
Normalización Inteligente
Maneja diferencias de espacios en blanco y mayúsculas/minúsculas en valores hex.
Tus Datos Permanecen Privados
Todos los cálculos HMAC ocurren completamente en tu navegador usando la biblioteca CryptoJS:
- Sin cargas — Tus claves secretas y mensajes nunca abandonan tu dispositivo
- Sin procesamiento en servidor — Todo se ejecuta del lado del cliente en JavaScript
- Sin seguimiento — No registramos ni almacenamos datos de entrada
- Capaz de funcionar sin conexión — Funciona sin conexión a internet una vez cargado
Preguntas Frecuentes
¿Qué algoritmo HMAC debo usar?
SHA-256 es el más ampliamente utilizado y recomendado para la mayoría de aplicaciones. Es utilizado por webhooks de Stripe, GitHub, Shopify y firmas de API de AWS. Usa SHA-512 si necesitas mayor seguridad, o variantes SHA3 para el estándar más reciente.
¿Por qué MD5 y SHA-1 están marcados como no seguros?
MD5 y SHA-1 tienen debilidades criptográficas conocidas — se han demostrado ataques de colisión para ambos. Aunque HMAC-MD5 y HMAC-SHA1 todavía se consideran seguros en algunos contextos (la construcción HMAC añade seguridad), es una buena práctica usar SHA-256 o superior para nuevas implementaciones.
¿Cuál es la diferencia entre salida Hex y Base64?
Hex representa cada byte como dos caracteres hexadecimales (0-9, a-f). Es más largo pero más fácil de leer y depurar. Base64 es más compacto (aproximadamente 33% más corto) y se usa comúnmente en encabezados HTTP y JWTs. Elige el formato que tu API o servicio espere.
| Formato | Longitud | Uso Común | Legibilidad |
|---|---|---|---|
| Hex | 64 caracteres (SHA-256) | Depuración, registros | Alta |
| Base64 | 44 caracteres (SHA-256) | Encabezados HTTP, JWT | Media |
¿Cuándo debo usar el tipo de entrada Hex o Base64 para claves?
Si tu clave secreta se proporciona como una cadena hex (p. ej., desde un panel de API mostrando bytes sin procesar) o cadena base64, selecciona el tipo de entrada coincidente para que la herramienta interprete correctamente los datos binarios. La mayoría de las veces, "String" (UTF-8) es la opción correcta.
- String (UTF-8) — Úsalo para contraseñas de texto regular y claves de API como "my_secret_key_123"
- Hex — Úsalo cuando tu clave se vea como "a3f5b2c8d1e4..." (bytes hexadecimales)
- Base64 — Úsalo cuando tu clave se vea como "SGVsbG8gV29ybGQ=" (codificada en base64)
¿Cómo verifico una firma de webhook?
Ingresa el secreto de firma del webhook como la clave, pega el cuerpo exacto de la solicitud como el mensaje, selecciona el algoritmo que tu servicio usa (generalmente SHA-256), luego activa Verificar HMAC y pega la firma del encabezado del webhook para verificar si coincide.
Obtén Secreto
Copia el secreto de firma del panel del servicio
Cuerpo Sin Procesar
Pega el cuerpo exacto de la solicitud
Verifica
Compara con la firma del encabezado
¿Están mis datos seguros?
Sí. Todos los cálculos HMAC se ejecutan completamente en tu navegador — no se envían datos a ningún servidor. Tus claves secretas y mensajes permanecen en tu dispositivo en todo momento.
Aún no hay comentarios. ¡Sé el primero en comentar!