Hash & Crypto Helpers

Generador HMACComprueba los bytes de cada firma

Configura mensaje y clave por separado; genera un resumen o verifica directamente el valor esperado.

Generador HMAC

Mensaje

Resumen HMAC

Mensaje y clave quedan en la memoria de esta página; no se envían ni se guardan en el almacenamiento del navegador.

Opciones

Sin recortar ni normalizar. Usa Hex/Base64 para claves multilínea y un resumen completo sin prefijo de encabezado.

Mensaje: 1.000.000 unidades UTF-16 y bytes. Clave: 4.096 unidades UTF-16, no vacía.

Introduce una clave y genera o verifica. El mensaje puede estar vacío.

El Generador HMAC ayuda cuando una firma de API cambia entre implementaciones. Comprueba los bytes del mensaje original y la codificación de la clave secreta antes de sustituir el algoritmo.

HMAC SHA256 es la opción inicial; también puedes elegir SHA-512 o SHA-1. Estos códigos de autenticación de mensajes permiten verificar una firma con una clave compartida, pero no cifran el contenido.

Por qué usar este Generador HMAC

Texto y Hex no son la misma clave

El Generador HMAC interpreta mensaje y clave de forma independiente. El texto 6162 ocupa cuatro bytes; Hex 6162 representa dos. Si la clave viene codificada, elegir texto cambia los datos usados para firmar.

Dos representaciones de una clave producen secuencias de bytes de distinta longitud antes de firmar el mismo mensaje.

Verificación directa

Introduce el resumen esperado y verifica sin generar antes. Se usan los datos actuales y se distingue entre formato inválido, longitud incorrecta y una firma válida en formato que no coincide.

Resúmenes iguales muestran una marca; cambiar un byte del mensaje produce bloques distintos y una cruz.

Alinear los datos firmados

01

Conserva el cuerpo original

No reorganices el JSON ni quites espacios. Un salto final, un BOM o una representación Unicode diferente puede alterar los bytes firmados.

  • Usa Hex o Base64 cuando necesites conservar bytes que un campo de texto no reproduce.
02

Ajusta la codificación de la clave

UTF-8 usa caracteres literales, Hex decodifica pares y Base64 decodifica su alfabeto estándar. La clave aparece oculta al principio.

  • El campo rechaza saltos de línea al pegar o arrastrar y conserva la clave actual. Codifica las claves multilínea en Hex o Base64 primero.
03

Selecciona el formato de referencia

La salida y el resumen esperado tienen codificaciones separadas. Generar y Verificar se ejecutan manualmente; editar una entrada invalida la copia del resultado anterior.

  • Ctrl/Cmd + Intro verifica desde el campo de referencia y genera desde los demás. El atajo no reinicia un cálculo en curso.

Controlar algoritmo y formatos

Tres algoritmos concretos

SHA-256 devuelve 32 bytes, SHA-512 devuelve 64 y SHA-1 devuelve 20. Usa el algoritmo exigido por el protocolo. SHA-1 se mantiene para compatibilidad con sistemas existentes.

Representaciones independientes

Mensaje y clave admiten UTF-8, Hex y Base64 estándar. Salida y referencia admiten Hex o Base64, incluso formatos distintos entre sí. Hex ignora la diferencia entre mayúsculas y minúsculas; Base64 no.

Verificación nativa

Web Crypto calcula y verifica el HMAC. Una coincidencia se refiere a los bytes y la clave introducidos. No comprueba la fecha, la caducidad ni si alguien ha repetido una petición firmada anteriormente.

Reglas de entrada y alcance

Sin correcciones silenciosas
No se eliminan espacios ni se normaliza Unicode o se serializa JSON de nuevo. Hex rechaza prefijos, separadores, espacios y longitudes impares. Base64 rechaza el alfabeto URL, espacios, relleno incorrecto y bits finales no canónicos; admite omitir correctamente el relleno.
Mensaje vacío permitido
La clave decodificada no puede estar vacía. El mensaje admite 1.000.000 unidades UTF-16 y 1.000.000 bytes decodificados; la clave, 4.096 unidades UTF-16. Los sustitutos Unicode aislados son inválidos.
Solo resúmenes completos
La referencia debe decodificarse a 20, 32 o 64 bytes según el algoritmo. Retira prefijos como sha256= antes de pegarla. No se admiten firmas truncadas, archivos, consultas de URL, detección de algoritmos ni plantillas de plataformas.
Sustituciones con vista previa
Ejemplo y Limpiar muestran las cantidades sustituidas antes de aplicar el cambio. Deshacer restaura una vez entradas, opciones y resultado, incluida la clave anterior en memoria. La siguiente edición descarta esa copia. No se generan claves ni se almacenan contraseñas.

Preguntas sobre el Generador HMAC

¿Qué algoritmo debo elegir?

El que especifique la documentación de la integración. SHA-256 es el valor inicial, mientras que SHA-512 y SHA-1 cubren los protocolos que los necesitan. Un algoritmo diferente no es intercambiable aunque el resultado tenga un aspecto parecido.

¿Cómo verifico la firma de un webhook con esta herramienta?

Prepara la cadena exacta que el proveedor firma y extrae el resumen del encabezado. Introduce mensaje, clave y referencia con sus codificaciones. La comprobación de marcas de tiempo, expiración y repetición corresponde a tu aplicación.

¿Es seguro pegar aquí mi clave secreta?

El Generador HMAC no envía la clave a un servidor ni la guarda en el almacenamiento del navegador. Limpiar conserva una copia para deshacer hasta la siguiente edición o hasta salir de la página; JavaScript no garantiza el borrado físico de memoria.

¿Por qué mi HMAC computado en Python no coincide con el de Node.js?

Comprueba si ambos programas usan los mismos bytes para la clave y el mensaje. Una cadena Hex tratada como UTF-8, un salto final o una serialización distinta de JSON cambia el resultado. También deben coincidir el algoritmo y la cadena firmada definida por el servicio.

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

Un hash normal depende del mensaje; HMAC incorpora una clave secreta mediante una construcción definida. Anteponer o añadir una sal al texto y calcular un hash no reproduce esa construcción. HMAC tampoco es un método de cifrado reversible.

¿Te queda alguna duda?

Empieza con una firma conocida

Usa el Generador HMAC con el ejemplo RFC, verifica su referencia y cambia un carácter del mensaje para observar la discrepancia.

Configura mensaje y clave por separado; genera un resumen o verifica directamente el valor esperado.