HMAC-SHA1, SHA-256, SHA-384 y SHA-512 de un texto o un archivo, y verificación de firmas
Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio.Un HMAC demuestra que un mensaje procede de alguien que tiene el secreto compartido; así se verifica un webhook. Admite SHA-1, SHA-256, SHA-384 y SHA-512, sobre texto o sobre un archivo de hasta 200 MB. El secreto nunca sale de su navegador, algo importante tratándose de una clave de firma.
Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés
Elija SHA-1, SHA-256, SHA-384 o SHA-512 en Algoritmo.
Introduzca la Clave secreta e indique si está escrita como Texto, Hex o Base64.
Pegue el mensaje en Texto, o cambie a Archivo y pulse Elegir un archivo.
Copie el resultado en Hex, Base64 o Base64URL con su icono de copiar; Ctrl+Enter copia el hex.
Este generador de HMAC calcula un hash con clave de un texto o un archivo con SHA-1, SHA-256, SHA-384 o SHA-512 y muestra el resultado en hex, Base64 y Base64 seguro para URL mientras escribe. También verifica: pegue la firma que espera y le dirá si coincide.
HMAC es la forma en que dos sistemas demuestran que un mensaje procede de alguien que tiene un secreto compartido y que no se modificó por el camino. Los desarrolladores lo usan cuando el webhook de un proveedor de pagos no supera la verificación y necesitan saber si falla el secreto, el cuerpo o la cabecera, cuando escriben una función de firma y la comprueban con una respuesta conocida, o cuando la documentación de una API muestra una firma de ejemplo que hay que reproducir.
La clave se puede escribir como texto, hex o Base64, porque los proveedores publican secretos en los tres formatos. La firma esperada puede estar en hex o Base64 y puede conservar el prefijo de su cabecera, como sha256= de GitHub o el formato t=,v1= de Stripe. La comparación se hace en tiempo constante, como debería hacerla también su servidor.
Todo ocurre en su navegador mediante la Web Crypto API. La clave y el mensaje nunca se suben, se registran ni se guardan, ni siquiera en este navegador; solo se recuerdan el algoritmo y el formato de clave elegidos. Se pueden firmar archivos de hasta 200 MB, ya que el archivo entero tiene que estar en memoria a la vez.
Cuando falla la comprobación de un webhook, la causa habitual es el cuerpo: la firma cubre los bytes exactos sin procesar, y un cuerpo JSON que un framework ha vuelto a serializar no coincidirá. Herramientas relacionadas: JWT Decoder, Base64 Encoder, Bcrypt Hash and Verify.
Elija SHA-256, escriba o pegue la clave secreta y después escriba el mensaje o elija un archivo. La firma aparece al instante en hex y Base64; pulse Copiar junto a la que espera su API. Si su clave viene en hex o Base64 en lugar de texto, cambie antes el formato de clave, porque los mismos caracteres se decodifican en bytes distintos.
No. El HMAC se calcula en su navegador con la Web Crypto API, y la clave y el mensaje nunca salen de la página. Nada de lo que escribe se registra ni se guarda, ni siquiera en el almacenamiento local. Solo se recuerdan en este dispositivo el algoritmo y el formato de clave elegidos para la próxima vez.
Normalmente el cuerpo no es, byte a byte, lo que firmó el remitente: un framework analizó y volvió a serializar el JSON, cambió los saltos de línea o recortó espacios. Firme el cuerpo sin procesar. Otras causas son usar el secreto equivocado (las claves de prueba y de producción son distintas), tratar un secreto en hex como texto o comparar hex con una firma en Base64.
Cualquiera puede calcular un hash normal, así que no prueba nada sobre quién lo hizo. HMAC mezcla una clave secreta, de modo que solo quien tiene la clave puede producir el valor correcto. Además está diseñado para resistir los ataques de extensión de longitud que rompen el método ingenuo de calcular el hash de la clave seguida del mensaje.
Una comparación de cadenas normal se detiene en el primer carácter distinto, así que el tiempo que tarda revela cuánta parte de una firma adivinada era correcta. Medido en muchas solicitudes, eso permite a un atacante construir una firma válida byte a byte. Esta herramienta compara todos los bytes siempre, y el código de su servidor también debería hacerlo.
Mensajes de texto de cualquier longitud práctica y archivos de hasta 200 MB, porque Web Crypto necesita el mensaje entero en memoria. Se admiten SHA-1, SHA-256, SHA-384 y SHA-512; MD5 no está disponible en Web Crypto y de todos modos no debería usarse para firmas nuevas. Las claves deben tener al menos un byte.
¿Sigue sin resolverlo? Pregunte sobre Generador de HMAC y cualquiera que lo sepa puede responder. No se necesita cuenta.