HMAC / MAC
Suite del lado del cliente de códigos de autenticación de mensajes con hash y clave que admite HMAC-SHA256, SHA512, SHA384, SHA224, SHA1 y MD5 con aceleración nativa de Web Crypto y verificación de tiempo constante.
¿Qué es HMAC?
HMAC (Hash-based Message Authentication Code) combina una clave secreta con una función hash para producir un código que demuestra tanto que un mensaje no ha cambiado como que fue creado por alguien que posee la clave compartida —a diferencia de un hash simple, que cualquiera puede calcular.
Cómo usar la herramienta HMAC / MAC
- Introduce el mensaje y la clave secreta.
- Elige un algoritmo de hash para usar con HMAC (SHA-256 y otros están disponibles).
- Genera el MAC, o pega un MAC existente junto con un mensaje y una clave para verificar que coincide.
Notas técnicas
- HMAC requiere una clave secreta —sin ella, es solo un hash normal y no ofrece ninguna garantía de autenticación.
- El mismo mensaje y la misma clave siempre producen el mismo MAC, así que verificar significa volver a calcular el MAC y compararlo, no desencriptar nada.
- Mantén la clave secreta en privado; cualquiera que la tenga puede generar MACs válidos indistinguibles de los tuyos.
Preguntas frecuentes
¿En qué se diferencia HMAC de un hash normal?+
Un hash normal lo puede calcular cualquiera, así que solo detecta cambios accidentales. HMAC incorpora una clave secreta, por lo que una etiqueta válida también demuestra que el mensaje proviene de alguien que posee esa clave. Sin clave no aporta autenticación.
¿Cómo verifico un MAC? ¿Se puede descifrar?+
Un MAC no es cifrado y no puede revertirse. Verificar significa volver a calcular el HMAC sobre el mensaje y la clave recibidos y compararlo con la etiqueta esperada. Esta herramienta hace esa comparación en tiempo constante para evitar canales laterales de temporización.
¿Es seguro usar HMAC-MD5 o HMAC-SHA1?+
Las debilidades de colisión de MD5 y SHA-1 no rompen directamente HMAC, por lo que estas variantes aún aparecen en algunos protocolos heredados como firmas antiguas de AWS y OAuth 1.0. Para todo lo nuevo, usa HMAC-SHA-256 o algo más fuerte.
