Generador de HMAC: SHA-1, SHA-256, SHA-512

Escriba un mensaje y una clave secreta. Obtendrá el HMAC del mensaje con cuatro funciones hash, en hexadecimal y en Base64, calculado en su navegador.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

Los datos que se van a autenticar. El texto se lee como UTF-8 tal como se escribe. El hexadecimal o Base64 se leen como bytes.

Codificación del mensaje

Cómo está escrito el mensaje.

La clave secreta. Solo quien tenga la misma clave puede generar el mismo HMAC, así que manténgala en privado.

Codificación de la clave

Cómo está escrita la clave. Base64 también lee el alfabeto seguro para URL de un valor «k» de JWK.

Resultado

Valores HMAC

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Escriba los datos en Mensaje. Para datos binarios, elija Hexadecimal o Base64 en Codificación del mensaje.
  2. Escriba el secreto en Clave y elija cómo está escrito en Codificación de la clave.
  3. Lea las cuatro filas de Valores HMAC. Copie el valor que necesite, o compárelo con el que da su sistema.
  4. Si los valores no coinciden con los de otro sistema, revise primero los bytes: un final de línea o una codificación distinta dan otro HMAC.

Qué es un HMAC

Un HMAC (RFC 2104) es un código de autenticación de mensajes: un valor corto que solo puede generar quien conoce la clave secreta. Se construye con una función hash ordinaria H, aplicada dos veces al mensaje y a la clave, así que la misma función hash sirve para las cuatro filas de la tabla. Como hace falta la clave, un HMAC que coincide demuestra que el mensaje no se cambió y que procede de quien tiene la clave.

Un HMAC no oculta el mensaje. Quien tiene el mensaje puede leerlo; el HMAC solo le permite comprobarlo.

HMAC(K, m) = H((K XOR opad) || H((K XOR ipad) || m))

ipad = el byte 0x36 repetido B veces
opad = el byte 0x5C repetido B veces
B    = el tamaño de bloque de H: 64 bytes para SHA-1 y SHA-256, 128 bytes para SHA-384 y SHA-512

Qué hash y qué clave

HMAC-SHA-256 es la opción habitual, y la que usan muchos webhooks y API. HMAC-SHA-512 es la misma construcción con una salida más larga. HMAC-SHA-1 todavía aparece en sistemas antiguos, y no es una opción para diseños nuevos.

La clave debe ser aleatoria y tener al menos la longitud de la salida del hash. Una clave escrita como una palabra o una frase corta es fácil de adivinar, y una clave adivinada deja el HMAC sin valor.

Hexadecimal y Base64

Las dos formas muestran los mismos bytes. El hexadecimal escribe cada byte con dos cifras, así que SHA-256 tiene 64 cifras. Base64 escribe tres bytes como cuatro caracteres, así que SHA-256 tiene 44 caracteres, el último de ellos un = de relleno (RFC 4648).

  • HMAC-SHA-1: 40 cifras hexadecimales, 28 caracteres Base64
  • HMAC-SHA-256: 64 cifras hexadecimales, 44 caracteres Base64
  • HMAC-SHA-384: 96 cifras hexadecimales, 64 caracteres Base64
  • HMAC-SHA-512: 128 cifras hexadecimales, 88 caracteres Base64

Ejemplo resuelto: caso de prueba 2 de la RFC 4231

La clave Jefe y el mensaje what do ya want for nothing? son el segundo caso de prueba de la RFC 4231 para SHA-256, SHA-384 y SHA-512, y de la RFC 2202 para SHA-1. La tabla de abajo es lo que muestra la página para ellos, y su valor HMAC-SHA-256 es el que imprime la RFC: 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

Algoritmo Hexadecimal Base64
HMAC-SHA-1 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79 7/zfauXrL6LSdBbV8YTfnCWafHk=
HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 W9zBRr9gdU5qBCQmCJV1x1oAPwidJzmDnexYuWTsOEM=
HMAC-SHA-384 af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649 r0XS43ZIQDFhf3jStYprG5x+9GT1oBtH5C7Dc2MiRF6OIkDKXmnix4syOez6shZJ
HMAC-SHA-512 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737 Fkt6e/z4GeLjlfvnO1bgo4e9ZCIugx/WECcM1+olBVSXWL91wFqZSm0DT2X48Ob9yuqxo01Ka0tjbgcKOLznNw==

Preguntas frecuentes

¿Un HMAC es lo mismo que cifrar el mensaje?

No. Un HMAC no oculta el mensaje, así que cualquiera puede leerlo. Demuestra que el mensaje no se cambió y que el remitente conoce la clave. Para mantener un secreto hace falta cifrado.

¿Cuál es la diferencia entre un hash y un HMAC?

Un hash depende solo del mensaje, así que cualquiera puede calcularlo. Un HMAC necesita además la clave secreta, así que solo quien tiene la clave puede generarlo o comprobarlo. Para resúmenes simples, use el generador de hash.

¿Por qué mi HMAC es distinto del que da mi biblioteca?

La clave o los bytes del mensaje son distintos. Una clave escrita como texto son sus bytes UTF-8, y las mismas letras escritas en hexadecimal son otros bytes. Un salto de línea al final del mensaje también cambia el HMAC.

¿Qué longitud de clave debo usar?

Use una clave aleatoria de al menos la longitud de la salida del hash: 32 bytes para HMAC-SHA-256. La RFC 2104 desaconseja con firmeza una clave más corta, y una clave hecha con palabras o una frase corta es fácil de adivinar.

¿Puedo comprobar con esta página la firma de un webhook?

Sí, si usa los bytes exactos que se firmaron. Las firmas de webhooks suelen calcularse sobre el cuerpo bruto de la petición, así que pegue el cuerpo sin cambios: un cuerpo JSON reformateado da otro HMAC.

¿Se envía mi clave o mi mensaje a algún sitio?

No. El HMAC se calcula en su navegador con SubtleCrypto, la función criptográfica propia del navegador. La clave y el mensaje no se suben ni se guardan.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.