Generador HMAC - Encriptación HMAC

Herramienta gratuita para generar HMAC online. Genere códigos de autenticación de mensajes con SHA-256, SHA-512 o SHA-1. Perfecto para APIs, JWT y verificación.

⚠️ ¡Nunca comparta sus claves secretas públicamente!

Generador HMAC - Generar Códigos de Autenticación de Mensajes Online

Un potente generador HMAC online que crea Códigos de Autenticación de Mensajes Basados en Hash usando algoritmos SHA-256, SHA-512 o SHA-1. Perfecto para desarrolladores implementando autenticación de API, firma de tokens JWT, verificación de webhooks y verificaciones seguras de integridad de datos. Soporta formatos de salida hexadecimal y base64.

¿Qué es HMAC?

HMAC (Código de Autenticación de Mensajes Basado en Hash) es un algoritmo criptográfico que combina una función hash con una clave secreta para crear un código de autenticación de mensaje.

Características clave:
- Verifica tanto integridad de datos como autenticidad
- Requiere clave secreta (compartida entre emisor/receptor)
- Basado en funciones hash estándar (SHA-256, SHA-512, etc.)
- Usado en APIs, JWTs, webhooks y comunicaciones seguras

HMAC = Hash(clave_secreta + mensaje)

Ejemplo:
Mensaje: "Hola, Mundo!"
Secreto: "miClaveSecreta"
HMAC-SHA256: a4e624d686e03ed2767c0abd85c14426b0b1157d2ce81d27bb4fe4bc1e4fa3a6

HMAC proporciona tanto autenticación (el emisor tiene la clave) como integridad (el mensaje no ha sido modificado). Es fundamental para APIs seguras, verificación de webhooks y firma de tokens.

¿Cómo genero un HMAC?

Generar un HMAC es simple:

1. Ingrese su mensaje/datos
2. Ingrese su clave secreta
3. Seleccione algoritmo hash (SHA-256 recomendado)
4. Elija formato de salida (hex o base64)
5. Haga clic en 'Generar HMAC'
6. Copie el código HMAC

Ejemplo:
Mensaje: "usuario=juan&accion=login"
Clave: "api_clave_secreta_123"
Algoritmo: HMAC-SHA256
Salida: Cadena hex de 64 caracteres

El mismo mensaje + clave siempre producirá el mismo HMAC. Esto es importante porque permite al receptor verificar el mensaje generando el HMAC con la misma clave y comparando resultados.

Nota de seguridad: Mantenga su clave secreta privada. Cualquiera con la clave puede generar HMACs válidos.

¿Para qué se usa HMAC?

HMAC se usa ampliamente para autenticación segura y verificación de integridad:

✓ Autenticación de API:
- Verificación de firma AWS
- Webhooks de GitHub
- Firma de solicitudes API
- Firmas OAuth

✓ JWT (JSON Web Tokens):
- Algoritmos HS256, HS384, HS512
- Verificación de firma de token
- Autenticación de usuario

✓ Integridad de Mensajes:
- Verificación de payload de webhook
- Detección de manipulación de datos
- Transmisión segura de mensajes

✓ Gestión de Sesiones:
- Firma de cookies
- Generación de tokens CSRF
- Validación de sesión

✓ Seguridad de Pagos:
- Verificación de transacciones
- Pasarelas de pago (Stripe, PayPal)
- Prevención de fraude

HMAC asegura tanto autenticidad (el emisor tiene la clave) como integridad (el mensaje no ha cambiado). Es esencial para cualquier sistema que necesite verificar que los datos provienen de una fuente confiable y no han sido modificados.

¿Qué algoritmo HMAC debería usar?

Elija basándose en sus necesidades de seguridad:

HMAC-SHA256 (Recomendado):
✓ Estándar de industria
✓ Rápido y seguro
✓ Salida hex de 64 caracteres
✓ Usado por la mayoría de APIs
✓ JWT HS256
✓ Balance perfecto entre velocidad y seguridad

HMAC-SHA512 (Más Seguro):
✓ Máxima seguridad
✓ Salida hex de 128 caracteres
✓ Mejor para datos de alto valor
✓ JWT HS512
✓ Use para aplicaciones financieras o de alta seguridad

HMAC-SHA1 (Legado):
⚠️ Obsoleto para proyectos nuevos
✓ Solo para compatibilidad legado
✓ Salida hex de 40 caracteres
✗ No use para sistemas nuevos

Recomendaciones:
- Para la mayoría de aplicaciones: Use HMAC-SHA256
- Para máxima seguridad: Use HMAC-SHA512
- Para APIs modernas: SHA-256 es el estándar
- Para sistemas legados: Solo use SHA-1 si es necesario

Evite SHA-1 para proyectos nuevos ya que tiene vulnerabilidades conocidas.

¿Cómo verifica HMAC los mensajes?

Proceso de verificación HMAC:

1. Emisor:
- Crea mensaje
- Genera HMAC con clave secreta
- Envía mensaje + HMAC

2. Receptor:
- Recibe mensaje + HMAC
- Genera HMAC del mensaje usando misma clave
- Compara HMAC generado con HMAC recibido
- Coincidencia = auténtico, sin manipulación
- No coincide = rechazar (manipulado o clave incorrecta)

Ejemplo:
Mensaje original: "transferir $100"
Clave: "secreto_compartido"
HMAC: abc123...

Si un atacante cambia a "transferir $1000":
- El nuevo HMAC no coincidirá
- El receptor rechaza el mensaje
- La manipulación es detectada

Protección HMAC:
✓ Previene manipulación de datos
✓ Verifica autenticidad del emisor
✓ Detecta modificaciones no autorizadas
✓ Asegura integridad del mensaje

Sin la clave secreta correcta, es imposible generar un HMAC válido. Esto hace a HMAC perfecto para verificar que los mensajes provienen de una fuente confiable y no han sido modificados en tránsito.

¿Puedo usar HMAC para contraseñas?

¡NO! HMAC NO es para hasheo de contraseñas.

HMAC:
✓ Autenticación de mensajes
✓ Firmas API
✓ Integridad de datos
✗ NO para almacenamiento de contraseñas

Para contraseñas, use:
✓ bcrypt (recomendado)
✓ Argon2 (moderno)
✓ PBKDF2 (aceptable)
✗ Nunca HMAC

¿Por qué?
- HMAC es rápido (no es bueno para contraseñas)
- HMAC necesita una clave (las contraseñas son el secreto)
- HMAC no usa salt apropiadamente para contraseñas
- HMAC no está diseñado para ser lento (las funciones de contraseña deben ser lentas)

Diferencias:
HMAC: Verifica mensajes de una fuente conocida
Hasheo de Contraseñas: Almacena contraseñas de forma segura

¡HMAC y hasheo de contraseñas sirven propósitos diferentes y no son intercambiables!

Para autenticación API: Use HMAC
Para almacenar contraseñas: Use bcrypt/Argon2

Características Principales

  • Generar HMAC desde cualquier mensaje instantáneamente
  • Soporte para SHA-256, SHA-512 y SHA-1
  • Formato de salida Hexadecimal o Base64
  • Clave secreta con alternancia mostrar/ocultar
  • Web Crypto API para hasheo seguro
  • Copiar HMAC al portapapeles
  • Descargar HMAC como archivo de texto
  • Mostrar información de algoritmo y salida
  • Soporte de modo oscuro
  • Procesamiento 100% del lado del cliente
  • Funciona sin conexión
  • Sin registro requerido