Generador de HMAC
HMAC Generator
Calcula el HMAC de un mensaje con el hash y la codificación de clave que elijas, para comprobar firmas de webhooks.
Calcula un HMAC —un digest con clave— sobre un texto o un archivo, con la clave leída como texto, hexadecimal o Base64. Es la misma pantalla que la herramienta de hash con su mitad HMAC activada, porque un HMAC es un hash con una clave y separarlos significaría dos páginas que comparten todos los controles.
Entrada
Suelta un archivo para sacarle la suma de verificación
Se lee en esta pestaña. No se sube nada.
El texto se hashea como bytes UTF-8, que es lo que cualquier otra herramienta quiere decir con hashear una cadena.
Resúmenes
Pega una suma de verificación publicada; se ilumina la fila que coincide.
| Algoritmo | Resumen | Copiar |
|---|---|---|
| MD5Construir colisiones sale barato. Vale como suma de verificación, no para firmas ni contraseñas. | ||
| SHA-1Ya se han demostrado colisiones. Vale para una suma de verificación heredada, para nada nuevo. | ||
| SHA-256 | ||
| SHA-384 | ||
| SHA-512 | ||
| CRC-32Es un código detector de errores, no un hash. Dos archivos pueden compartir uno por accidente, no digamos a propósito. |
Entrada
0 B
Origen
cuadro de texto
Cómo se usa
Activa HMAC
Aparece el campo de clave, y CRC-32 desaparece de la tabla: es una suma de verificación, no una función hash, y no tiene HMAC.
Indica cómo debe leerse la clave
Aquí es donde los HMAC suelen salir mal. Una clave escrita como `0a1b2c` son tres bytes como hexadecimal y seis como texto, y las dos producen digests completamente distintos.
Compara con la firma que te enviaron
Pégala en el cuadro de comparar; la fila que coincida se ilumina. Las firmas de webhook de Stripe, GitHub y Slack son todas HMAC-SHA256 sobre una cadena concreta, así que acertar con el mensaje importa tanto como la clave.
Preguntas frecuentes
¿Por qué mi HMAC no coincide con el de la cabecera?
Normalmente es el mensaje, no la clave. Una firma de webhook se calcula sobre una cadena exacta —a menudo la marca de tiempo, un separador y el cuerpo en bruto—, y un cuerpo que ha pasado por un parser JSON y se ha vuelto a serializar es una cadena distinta. Firma los bytes que recibiste.
¿HMAC es lo mismo que hacer el hash de la clave y el mensaje juntos?
No, y ese es su sentido. `hash(key + message)` es vulnerable a un ataque de extensión de longitud en MD5, SHA-1 y SHA-256; la construcción de dos pasadas de HMAC con el relleno interior y exterior es lo que lo elimina. Nunca construyas el tuyo.
¿La clave sale de la pestaña?
No. Se usa para importar una clave de WebCrypto en esta pestaña y nada más: no se transmite, no se guarda, no se pone en la URL. Recargar la página la pierde, que es el comportamiento correcto para un secreto.
¿Qué longitud debería tener la clave?
Al menos tanto como el digest: 32 bytes para SHA-256. HMAC acepta cualquier longitud, pero una clave más larga que el tamaño de bloque se reduce primero con un hash, y una clave corta es simplemente una clave corta: la seguridad es la entropía que pones.
Puede recibir de
Hash de un texto
Text Hash
Calcula MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC-32 de una cadena, con salida opcional en mayúsculas o en Base64.
Generador de códigos TOTP
TOTP Code Generator
Convierte una clave secreta TOTP en el código de seis dígitos actual con cuenta regresiva, para probar configuraciones de verificación en dos pasos.
Generador de claves aleatorias
Random Key Generator
Genera bytes aleatorios criptográficos en hexadecimal, Base64 o Base64URL con la longitud que elijas, para los secretos de una aplicación.
Formateador y validador de JSON
JSON Formatter & Validator
Indenta, minifica y valida JSON, señalando la línea y la columna exactas del error de sintaxis.
Después
Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.
Hash de un texto
Text Hash
Calcula MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC-32 de una cadena, con salida opcional en mayúsculas o en Base64.
Decodificador de JWT
JWT Decoder
Decodifica la cabecera y la carga útil, muestra la caducidad en hora local y comprueba la firma con la clave que le des.
Generador de claves aleatorias
Random Key Generator
Genera bytes aleatorios criptográficos en hexadecimal, Base64 o Base64URL con la longitud que elijas, para los secretos de una aplicación.
Codificador y decodificador Base64
Base64 Encoder & Decoder
Codifica y decodifica Base64 y Base64URL, para texto o archivos, tratando UTF-8 correctamente.
curl a código
curl to Code
Convierte un comando curl en fetch, axios, requests de Python, Go, PHP o PowerShell.
JSON a CSV y de vuelta
JSON ⇄ CSV
Aplana JSON anidado en columnas o reconstruye los objetos desde una tabla, con nombres de columna en notación de puntos.