logo
GeekFormat

Generador y validador HMAC

algoritmo de Hashi

La longitud recomendada corresponde a la longitud de la salida Hash: SHA-1=20 bytes, SHA-256=32 bytes, SHA-384=48 bytes, SHA-512=64 bytes

Contenido del mensaje0 caracteres
Firma HMAC (Hex)
Esperando entrada...

Notas

  • HMAC Genera firmas basadas en algoritmos clave y Hashi para la autenticación de fuente e integridad
  • Soporte SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Generar y validar tanto localmente en los navegadores, sin subir datos
  • Validación utiliza bytes de longitud fija para reducir las diferencias de series temporales

Genera y verifica firmas HMAC online gratis. Compatible con algoritmos SHA para asegurar la autenticidad de tus APIs y Webhooks.

Relacionado

Casos de uso

  • Desarrollo de webhooks de Stripe: depura callbacks de pago y verifica que la cabecera `Stripe-Signature` sea correcta
  • Integración de webhooks de GitHub: verifica la firma `X-Hub-Signature-256` en eventos Push y Pull Request
  • Sincronización de pedidos de Shopify: valida la firma `X-Shopify-Hmac-Sha256` de los webhooks de actualización de pedidos
  • Firmas de bots de Slack: verifica `X-Slack-Signature` en callbacks de eventos de Slack
  • Depuración de JWT: firma JWT con HS256 y comprueba la validez del token
  • Firma de solicitudes de API: implementa AWS Signature V4 o esquemas de firma personalizados

Características

  • Compatibilidad con varios algoritmos: HMAC-SHA256/384/512, SHA1 y MD5 para cubrir APIs modernas y sistemas heredados
  • Verificación de firmas de webhooks: soporte integrado para los formatos de Stripe, GitHub, Shopify y Slack con análisis automático
  • Tres formatos de salida: Hex, Base64 y Base64URL, para ajustarse a cualquier API o plataforma
  • Generación en tiempo real: recálculo automático 300 ms después de cada cambio, sin tener que pulsar ningún botón
  • Modo de verificación de firma: pega la firma esperada y comprueba al instante si coincide
  • Detección de longitud de clave: supervisión en tiempo real de la fortaleza de la clave con avisos si es demasiado corta
  • Procesamiento en el navegador: cálculo local con Web Crypto API, sin subir nunca las claves al servidor
  • Soporte para JWT: la salida HMAC-SHA256 puede usarse directamente para firmar con HS256

Cómo Usar

  1. Selecciona el algoritmo: HMAC-SHA256 es el valor predeterminado y el recomendado para APIs modernas
  2. Introduce el mensaje: pega el cuerpo sin procesar del mensaje o el contenido de la solicitud de API
  3. Introduce la clave: escribe el Webhook Secret o el API Secret
  4. Elige el formato: selecciona el formato de salida adecuado, por ejemplo Hex para Stripe o Base64URL para JWT
  5. Verifica la firma: cambia al modo de verificación y pega la firma esperada para compararla

Preguntas Frecuentes

¿Qué diferencia hay entre HMAC y un hash normal?

Las funciones hash normales, como SHA256, solo calculan una huella del propio mensaje; cualquiera puede generarla. HMAC incorpora una clave secreta al proceso de hash, de modo que solo quienes conocen esa clave pueden crear o verificar una firma válida. Por eso HMAC garantiza tanto la integridad como la autenticidad del mensaje, mientras que un hash normal solo comprueba la integridad.

¿Cómo se verifican las firmas de webhooks de Stripe, GitHub o Shopify?

Cada plataforma da formato a sus firmas de una manera distinta: Stripe usa la cabecera `Stripe-Signature` con el formato `t=timestamp,v1=hex_signature` y firma la cadena `timestamp.payload`; GitHub usa `X-Hub-Signature-256` con el formato `sha256=hex_signature`; Shopify envía `X-Shopify-Hmac-Sha256` como valor codificado en Base64. Esta herramienta permite verificar directamente estos formatos habituales.

¿Qué diferencia hay entre la salida Hex, Base64 y Base64URL?

Hex es el formato hexadecimal (0-9, A-F): resulta fácil de leer y muy útil para depurar. Base64 es una codificación de 64 caracteres, más compacta e ideal para incluir valores en JSON. Base64URL es la variante segura para URL (sustituye +/ por -_) y se utiliza en cabeceras JWT y parámetros de URL.

¿Qué algoritmo HMAC debería usar?

**HMAC-SHA256 es la opción recomendada**: es el estándar moderno para APIs y webhooks (lo usan Stripe, GitHub, Shopify y Slack), genera una salida de 32 bytes y tiene compatibilidad prácticamente universal. SHA-512 ofrece más margen de seguridad, pero produce una salida más larga (64 bytes). SHA1 solo tiene sentido en sistemas heredados. MD5 está obsoleto y solo debería usarse con APIs muy antiguas que todavía lo exijan.

¿Qué requisitos debe cumplir la longitud de la clave?

Cuanto más larga sea la clave, más segura será. Se recomienda un mínimo de 16 caracteres (128 bits) y, para producción, 32 caracteres o más. La herramienta supervisa la longitud de la clave en tiempo real y avisa si es demasiado corta. Genera las claves con un generador aleatorio criptográficamente seguro, no con contraseñas simples ni cadenas previsibles.

¿Por qué la verificación de la firma muestra que no coincide?

Las causas más comunes son: 1) el mensaje contiene espacios o saltos de línea adicionales; 2) la plataforma firma una cadena compuesta, por ejemplo Stripe firma `timestamp.payload`; 3) la firma incluye un prefijo que hay que quitar, como `sha256=` en GitHub; 4) se ha usado un algoritmo diferente. Comprueba que ambas partes utilicen exactamente los mismos parámetros.

¿Se puede usar HMAC para firmar JWT?

Sí. El algoritmo HS256 de JWT es HMAC-SHA256, y HS512 es HMAC-SHA512. La salida HMAC-SHA256 de esta herramienta puede utilizarse directamente como contenido de firma para HS256. En un JWT, la cabecera y el payload se codifican en Base64URL y después se firman con HS256.

¿Es segura esta herramienta HMAC online?

Esta herramienta usa la Web Crypto API para realizar todos los cálculos localmente en tu navegador. Las claves y los mensajes no se envían nunca a ningún servidor. Puedes comprobarlo abriendo el panel Network de las DevTools del navegador: no se realizan solicitudes externas. Es adecuada para pruebas y desarrollo; para claves de producción muy sensibles, conviene usar herramientas locales sin conexión.

¿Se pueden falsificar las firmas HMAC?

No, siempre que la clave se mantenga en secreto y el algoritmo hash tenga suficiente resistencia a colisiones. Con claves largas y aleatorias no se conocen ataques capaces de falsificar firmas HMAC válidas. Rotar las claves de forma periódica también es una buena práctica de seguridad.

¿Qué es Generador y validador HMAC?

HMAC (Hash-based Message Authentication Code) es una tecnología de autenticación de mensajes muy extendida y definida en RFC 2104. HMAC procesa una clave junto con un mensaje mediante una función hash para producir una firma de longitud fija. A diferencia de los hashes normales, HMAC exige conocer la clave para generar o verificar la firma, por lo que garantiza tanto la integridad como la autenticidad del mensaje.

**HMAC es una base clave de la seguridad moderna en APIs**. Stripe, GitHub, Shopify, Slack y Twilio usan HMAC-SHA256 para firmar eventos de webhook y asegurar que las solicitudes proceden realmente de la plataforma. AWS usa HMAC-SHA256 para la firma de solicitudes Signature V4. El algoritmo HS256 de JWT, en esencia, también es HMAC-SHA256. Entender HMAC es un primer paso sólido para dominar la seguridad de APIs.

**Cada plataforma tiene su propio formato de firma**: Stripe usa `t=timestamp,v1=hex_signature` y firma `timestamp.payload`; GitHub utiliza `X-Hub-Signature-256` con el formato `sha256=hex_signature`; Shopify envía `X-Shopify-Hmac-Sha256` como valor codificado en Base64. Esta herramienta puede analizar y verificar automáticamente estos formatos comunes.

**¿Por qué puede fallar la verificación de una firma?** Lo más habitual es que el formato del mensaje no coincida: quizá la plataforma firma `timestamp.payload` en lugar del cuerpo sin procesar del mensaje, el contenido incluye saltos de línea adicionales o la firma trae un prefijo (como `sha256=`) que hay que eliminar. Revisa con cuidado la documentación de la plataforma y compara usando el valor hexadecimal sin procesar.

Esta herramienta utiliza la **Web Crypto API** nativa del navegador (SubtleCrypto) para calcular HMAC, la misma base criptográfica que utilizan HTTPS y TLS. Todo el cálculo se realiza localmente; las claves y los mensajes no se envían nunca a ningún servidor. Puedes abrir el panel Network de las DevTools del navegador para comprobar que no se hacen solicitudes externas.