Desarrollador / Firmas
Generador de HMAC (SHA-256, SHA-512)
Genera una firma HMAC para un mensaje y una clave secreta con SHA-256, SHA-384, SHA-512 o SHA-1, en hexadecimal y Base64, para probar firmas de webhooks y API.
Generador de HMAC (SHA-256, SHA-512): HMAC combina una clave secreta con un mensaje mediante una función hash, de modo que solo alguien que tenga la clave puede producir la misma firma. Se calcula con la Web Crypto API de tu navegador, la misma implementación que el navegador utiliza para HTTPS. Se permite una clave vacía; se trata como una clave de cero bytes, tal como define el estándar HMAC. Funciona al 100 % en tu navegador, sin subir archivos a ningún servidor.
- Categoría
- Herramientas de desarrollo
- Se ejecuta
- En tu navegador
- Coste
- Gratis · sin registro
- Disponibilidad
- Lista para usar
Funciona por completo en tu navegador
——El mensaje se lee como texto UTF-8, exactamente como se ha escrito, incluidos los espacios y los saltos de línea; un salto de línea final cambia el resultado. Los webhooks de servicios como Stripe y GitHub se firman con HMAC-SHA256 de esta forma.
Verificar un webhook
Toma el cuerpo sin procesar de la solicitud antes de analizarlo, calcula el HMAC con el secreto compartido y compáralo con el encabezado de firma mediante una comparación en tiempo constante, para que el tiempo de respuesta no revele cuántos caracteres coinciden. Rechaza las solicitudes cuya marca de tiempo tenga más de unos minutos para evitar repeticiones.
Para obtener un hash sin clave, usa el generador de hash; para tokens firmados, el decodificador de JWT.
Claves
Una clave tan larga como la salida del hash —32 bytes aleatorios para SHA-256— ofrece toda la seguridad; las claves más largas se reducen mediante un hash antes. Mantén las claves fuera de los repositorios de código y rótalas si se filtran.
Cómo se usa
- Pega el mensaje exactamente como se envió, por ejemplo, el cuerpo sin procesar de un webhook.
- Introduce la clave secreta como texto o hexadecimal y elige el hash.
- Compara el resultado hexadecimal o Base64 con la firma que recibiste.
Privacidad y límites
El mensaje y la clave permanecen en tu navegador; no se envía nada a ningún sitio.
Herramientas relacionadas
Preguntas frecuentes
¿Por qué mi firma no coincide con la del webhook?
El mensaje firmado debe ser el cuerpo sin procesar, byte a byte: analizar y volver a serializar un JSON, o quitar o añadir un salto de línea, lo modifica. Algunos servicios firman juntos una marca de tiempo y el cuerpo, como Stripe con t=…,payload.
¿HMAC-SHA1 sigue siendo seguro?
Para HMAC todavía se considera seguro, a diferencia de SHA-1 para hashes simples, pero los sistemas nuevos deberían usar HMAC-SHA256.
¿Hexadecimal o Base64?
Son dos formas de escribir los mismos bytes; usa la que muestre el servicio. GitHub usa hexadecimal con el prefijo sha256=; muchos otros servicios usan Base64.
Herramienta gratuita · se ejecuta en tu navegador · sin cuenta