Skip to content
Seguridad · Hash

Generador HMAC

Calcula códigos de autenticación de mensajes HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 y HMAC-SHA512 con una clave secreta. Admite codificaciones de clave en texto plano, hex y Base64; salidas en hex, Base64 o Base64 compatible con URL. Verifica un HMAC recibido en la pestaña Verificar. Todo se ejecuta en tu navegador; nada se sube.

In-browser only Web Crypto API SHA-1 · 256 · 384 · 512
0 bytes
0 bytes
HMAC-SHA256 · 256 bits
Introduce un mensaje y una clave secreta para generar un HMAC.
Todo el cálculo se ejecuta en tu navegador — nada se sube.

Guía

Cómo usar

  1. 1
    Introduce tu mensaje

    Escribe o pega el mensaje que quieres autenticar en el campo Mensaje. El conteo de bytes se actualiza en tiempo real.

  2. 2
    Introduce tu clave secreta

    Escribe o pega tu clave secreta en el campo Clave secreta. Usa el selector de codificación para indicar si la clave es texto plano, hex o Base64.

  3. 3
    Selecciona un algoritmo y codificación de salida

    Elige uno de los cuatro algoritmos: HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 o HMAC-SHA512. Luego selecciona el formato de salida: hex, Base64 o Base64 compatible con URL.

  4. 4
    Lee el resultado HMAC

    El HMAC se calcula en un Web Worker en segundo plano y se muestra al instante. Cópialo, descárgalo como .txt o ve a la pestaña Verificar para compararlo con un valor esperado.

  5. 5
    Verifica un HMAC

    Ve a la pestaña Verificar y pega el HMAC esperado en el campo HMAC esperado. Aparece un indicador verde si coincide con el HMAC calculado, o rojo si no.

Referencia

Comparativa de algoritmos HMAC

Comparativa de algoritmos HMAC
AlgoritmoTamaño de salidaHash internoMejor para
HMAC-SHA1160 bits (20 bytes)SHA-1Solo sistemas heredados — evitar en proyectos nuevos
HMAC-SHA256256 bits (32 bytes)SHA-256Autenticación de API de uso general, JWT
HMAC-SHA384384 bits (48 bytes)SHA-384Firma de alta seguridad, contexto TLS
HMAC-SHA512512 bits (64 bytes)SHA-512Autenticación de mensajes de alta garantía

Preguntas frecuentes

¿Qué es un HMAC?
HMAC (Hash-based Message Authentication Code) es un tipo de código de autenticación de mensajes que combina una función hash criptográfica con una clave secreta. Se usa para verificar tanto la integridad como la autenticidad de un mensaje — que el mensaje no ha sido alterado y que proviene de alguien que conoce el secreto compartido.
¿Cuál es la diferencia entre HMAC-SHA256 y HMAC-SHA512?
Ambos son seguros para uso moderno. HMAC-SHA256 produce una firma de 256 bits (32 bytes) y es la opción más usada para autenticación de API y firma JWT. HMAC-SHA512 produce una firma de 512 bits (64 bytes) y ofrece un mayor margen de seguridad, a costa de una cadena de salida más larga. Para la mayoría de las aplicaciones, HMAC-SHA256 es la elección correcta.
¿Sigue siendo seguro HMAC-SHA1?
HMAC-SHA1 no está roto de la misma manera que el SHA-1 crudo. Sin embargo, se considera heredado y no debe usarse en nuevas integraciones. Usa HMAC-SHA256 o superior. Algunas API antiguas (como OAuth 1.0) aún requieren HMAC-SHA1 por compatibilidad.
¿Cuál es la diferencia entre las salidas hex y Base64?
Ambas representan los mismos datos binarios en diferentes codificaciones de texto. Hex usa dos caracteres en minúscula por byte (0–9, a–f) y es fácil de leer. Base64 usa aproximadamente 1,33 caracteres por byte y es más compacto. Base64 compatible con URL reemplaza + por - y / por _, y elimina el relleno, lo que lo hace seguro en URL y cabeceras HTTP.
¿Qué codificaciones de clave se admiten?
Hay tres codificaciones disponibles: Texto plano codifica la clave como bytes UTF-8. Hex espera la clave como cadena hex (cada par de caracteres es un byte; debe tener un número par de caracteres). Base64 espera una clave codificada en Base64 estándar (el relleno es opcional).
¿Esta herramienta sube mi clave o mensaje?
No. Todo el cálculo ocurre en un Web Worker que se ejecuta por completo en tu navegador. Tu clave y mensaje nunca salen de tu dispositivo — puedes abrir la pestaña Red del navegador y confirmar que no hay peticiones salientes con tus datos.
¿Por qué mi HMAC difiere del calculado por mi servidor?
Las causas más comunes son: el mensaje tiene un salto de línea final en el servidor (verifica con printf vs echo), la clave está en una codificación diferente (hex vs texto plano vs Base64), o se usó un algoritmo diferente. Verifica que los tres parámetros coincidan con lo que espera tu servidor.
¿Puedo usar la salida Base64 compatible con URL para JWT?
JWT usa Base64 compatible con URL (sin relleno) para las tres partes del token, incluida la firma. Si necesitas coincidir con una firma JWT, selecciona la salida Base64 compatible con URL.