Generar HMAC SHA256 Gratis – Calcula HMAC con tu Clave

Usa el Generador HMAC gratuito abajo: tus datos nunca salen de tu navegador, todo el trabajo ocurre en tu dispositivo y no se sube a ningún servidor.

HMAC: la firma que demuestra que un mensaje es auténtico

Imagina que tienes una tienda y tu proveedor de pagos te envía un mensaje que dice “el pedido 42 fue pagado”. ¿Cómo sabes que el mensaje viene de verdad del proveedor y no de alguien que finge serlo? Ese es el problema que resuelve HMAC. HMAC, siglas de código de autenticación de mensajes basado en hash, mezcla una clave secreta con un mensaje y produce una huella corta. Solo alguien que conoce la clave secreta puede producir la huella correcta para un mensaje dado. Si la huella coincide, el mensaje es auténtico y no ha sido alterado. Si no coincide, algo va mal.

La idea clave es el secreto. Un hash simple como SHA-256 de un mensaje no demuestra quién lo escribió, porque cualquiera puede calcular el mismo hash. Añadir una clave secreta cambia eso. El destinatario, que también conoce la clave, recalcula el HMAC y compara. Un atacante que no conoce la clave no puede falsificar una huella válida para un mensaje falso, aunque el algoritmo sea público. Este es el mismo principio de los webhooks firmados de Stripe, GitHub y Slack: el proveedor firma cada envío con un secreto compartido, y tu servidor verifica la firma antes de confiar en el contenido.

Cómo funciona HMAC, en lenguaje sencillo

HMAC no se limita a poner la clave delante del mensaje y calcular el hash del resultado. Ese enfoque ingenuo tiene debilidades conocidas. En su lugar, combina la clave con el mensaje dos veces, con dos constantes de relleno distintas, en una construcción que los criptógrafos llevan décadas estudiando. El resultado práctico es simple: HMAC-SHA256 toma cualquier clave y cualquier mensaje y produce una salida de 256 bits, que aquí se muestra como 64 caracteres hexadecimales o en base64. La misma clave y el mismo mensaje siempre dan la misma salida. Cambia un carácter del mensaje, o un carácter de la clave, y la salida cambia por completo.

Esta herramienta calcula HMAC con el motor Web Crypto de tu navegador, el mismo código criptográfico que tu navegador usa para los sitios seguros. Puedes elegir SHA-256, SHA-384 o SHA-512. SHA-256 es la opción habitual y la que esperan la mayoría de las APIs. SHA-512 da una salida más larga y se usa donde se quiere un margen de seguridad mayor. Tu clave y tu mensaje nunca salen de esta página: el cálculo ocurre en local, y nada se envía a ningún servidor, incluido el nuestro.

Dónde se usa HMAC en sistemas reales

El uso más común es la autenticación de APIs. En lugar de enviar una contraseña con cada petición, el cliente firma la petición con su clave secreta y envía la firma junto a ella. El servidor recalcula la firma y acepta la petición solo si coincide. Esto demuestra que el cliente tiene la clave sin enviar la clave jamás. Las firmas de Amazon AWS, muchas pasarelas de pago y los sistemas de webhooks funcionan así.

HMAC es también la firma dentro de los tokens JWT, los tokens compactos que se usan para sesiones web. Un JWT firmado con HS256 es exactamente un HMAC-SHA256 sobre la cabecera y el contenido del token. Si usas la herramienta JWT de este sitio, estás usando HMAC por debajo. La misma construcción aparece en los códigos de dos factores TOTP, donde HMAC sobre la hora actual produce el código de seis dígitos de tu teléfono.

Cuidar las claves con honestidad

HMAC solo es tan seguro como su clave. Una clave corta y adivinable como “secreto” se puede romper por fuerza bruta, porque un atacante que conoce el mensaje puede probar claves candidatas hasta que la huella coincida. Usa una clave larga y aleatoria, de al menos 32 caracteres, generada por una fuente aleatoria adecuada. Nunca pongas una clave real de producción en un sitio web en el que no confíes, y nunca la subas a un repositorio público de código. Las claves que se filtran deben rotarse de inmediato, porque a partir de entonces se puede falsificar cualquier mensaje firmado con ellas.

También recuerda lo que HMAC no hace. Demuestra autenticidad e integridad, pero no esconde el mensaje. Cualquiera puede leer el mensaje en sí; solo la firma depende del secreto. Si el mensaje debe mantenerse privado, cifralo además. Y HMAC por sí solo no demuestra que el mensaje sea reciente: un atacante podría reenviar un mensaje viejo firmado. Los sistemas reales añaden marcas de tiempo o valores únicos para evitar reenvíos.

Preguntas frecuentes

¿Por qué la misma entrada siempre da la misma salida? HMAC es determinista por diseño, así que verificar es simplemente recalcular y comparar. ¿Debe la clave tener la misma longitud que la salida del hash? Las claves más largas que el bloque del hash se reducen con un hash primero, así que las claves muy largas funcionan pero no añaden fuerza más allá del tamaño del hash. ¿Se sube mi clave a algún servidor? No. Web Crypto se ejecuta en local en tu navegador, y esta página no envía nada a ningún sitio.

Herramientas relacionadas

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top