Referencia técnica y guía de arquitectura

Generador y Verificador de Firmas HMAC — Guía de referencia

Calcule y verifique códigos de autenticación de mensajes RFC 2104 (HMAC-SHA256, HMAC-SHA512, HMAC-SHA1, HMAC-MD5) con verificación en tiempo constante inmune a ataques de temporización.

Parámetros clave y controles

Algoritmo de HashEnum

Función criptográfica base para la firma (SHA-256, SHA-512, SHA-384, SHA-1, MD5).

Por defecto: SHA-256
Codificación de ClaveEnum

Formato de la clave compartida (UTF-8, Hex, Base64).

Por defecto: UTF-8
Codificación del MensajeEnum

Formato del cuerpo de la carga útil a firmar.

Por defecto: UTF-8
Formato de SalidaEnum

Presentación de la firma calculada.

Por defecto: hex-lower

Consejos profesionales y mejores prácticas

Use siempre verificación en tiempo constante para webhooks

Las comparaciones estándar (===) son vulnerables a ataques de canal lateral de temporización. Nuestro comparador opera en tiempo constante O(1).

Especificaciones de GitHub y Stripe

GitHub envía sha256=<hex> en X-Hub-Signature-256. Stripe concatena la marca temporal con el payload antes de firmar.

Longitud de clave recomendada según RFC 2104

La clave secreta debe tener un tamaño igual o superior al bloque del hash (mínimo 32 bytes para SHA-256).

Errores comunes y solución de problemas

La firma no coincide con el webhook recibido

Asegúrese de usar el cuerpo bruto de la solicitud HTTP sin formatear ni modificar espacios ni saltos de línea.

Discrepancias entre Base64 y Base64URL

Base64URL sustituye '+' por '-' y '/' por '_' suprimiendo el relleno '='. Elija Base64URL en la configuración.

Preguntas frecuentes (FAQ)

¿Por qué HMAC es superior a hash(clave + mensaje)?▼

¿Puedo validar firmas de AWS SigV4?▼

Herramientas y utilidades relacionadas

Todas las herramientas →