Saltar al contenido
TextArray
Totalmente local

Generador HMAC

Calcule firmas HMAC-SHA256, SHA-1, SHA-384 o SHA-512 con una clave secreta.

Entrada

Generador HMAC

Un HMAC es un hash con clave: el mensaje y una clave secreta van juntos, y solo alguien que tenga la misma clave puede reproducir o verificar el resultado. Eso es lo que utilizan los proveedores de API para firmar solicitudes y lo que los remitentes de webhooks, como plataformas de pago y servicios de alojamiento de códigos, adjuntan a cada entrega, para que el receptor pueda demostrar que la carga útil realmente provino de ellos y no fue alterada durante el tránsito.

Ingrese la clave secreta, elija el algoritmo que usa la otra parte (SHA-256 es el predeterminado abrumador) y pegue el mensaje. El resumen aparece como hexadecimal en minúsculas o como Base64, lo que coincide con los dos formatos en los que se intercambian las firmas. Active el HMAC por línea para firmar cada línea de entrada por separado, lo que se adapta a una columna de tokens o ID. Los desarrolladores logran esto mientras depuran un controlador de webhook que rechaza firmas, reproducen un ejemplo de documentación o generan un vector de prueba para una prueba unitaria.

Tanto la clave como el mensaje se toman como bytes UTF-8, exactamente como lo hacen la mayoría de los SDK de servidor. Cuando su resultado no coincide con el otro lado, la causa casi siempre son los bytes, no las matemáticas: una nueva línea final en la carga útil, finales de línea CRLF, salida hexadecimal comparada con Base64 o una clave que el servicio proporciona con codificación Base64 o hexadecimal y espera decodificarla antes de su uso.

El campo clave está enmascarado y nunca se escribe deliberadamente en el almacenamiento de su navegador. Todo se ejecuta localmente a través del WebCrypto integrado en el navegador: pegar un secreto de firma en una herramienta HMAC en línea normalmente lo entrega a ese servidor, y aquí nunca sale de su dispositivo.

Preguntas frecuentes

¿Para qué se utiliza un HMAC?
Demostrar que un mensaje proviene de alguien que posee el secreto compartido y no fue modificado en el camino. Usos típicos: firmar solicitudes de API, verificar entregas de webhooks desde plataformas de pago y alojamiento, y firmar tokens. El receptor vuelve a calcular el HMAC con la misma clave y lo compara.
¿En qué se diferencia HMAC de un hash simple?
Cualquiera puede calcular un SHA-256 simple de un mensaje, por lo que no prueba nada sobre el remitente. Un HMAC mezcla una clave secreta en el cálculo de una manera que resiste la manipulación: sin la clave no se puede falsificar una firma válida ni verificarla. Esta es también la razón por la que HMAC-SHA1 sigue siendo aceptable en la práctica a pesar de que el SHA-1 simple está roto por colisiones, aunque los nuevos diseños aún deberían elegir SHA-256.
¿Por qué mi HMAC no coincide con el que envía el servidor?
Casi siempre los bytes difieren. Verifique si hay una nueva línea final en la carga útil, los finales de línea CRLF versus LF, la comparación hexadecimal con Base64 y el formato de clave; muchos servicios le entregan la codificación secreta en Base64 o hexadecimal y esperan los bytes decodificados como clave. Esta herramienta utiliza la clave exactamente como se escribió, como UTF-8.
¿Alguien puede recuperar mi clave de un HMAC?
Ningún ataque práctico recupera la clave de los resúmenes. Pero cualquiera que tenga la clave puede firmar mensajes arbitrarios, así que trate los secretos de firma como contraseñas: rote un secreto de webhook si se puede haber filtrado y nunca lo envíe a un repositorio.
¿Mi clave y mi texto están cargados en algún lugar?
No. El HMAC lo calcula el WebCrypto integrado de su navegador, el campo clave nunca se escribe en el almacenamiento y ni la clave ni el texto salen de su dispositivo.