Verificador de firmas de webhooks

Verifica firmas de GitHub, Stripe, Slack, Shopify y Standard Webhooks y descubre por qué fallan

Entrada

Solo se guarda en memoria. Nunca se almacena, registra ni envía.

Una línea "Nombre: valor" por cabecera, o un objeto JSON. Los nombres no distinguen mayúsculas.

Cabeceras necesarias

  • X-Hub-Signature-256Falta

Los cuadros de texto convierten los saltos de línea CRLF en LF. Si importan los bytes exactos, pega el cuerpo en Hex o Base64, o cárgalo desde un archivo.

Pegar petición HTTP sin procesar

Línea de petición, cabeceras, una línea en blanco y después el cuerpo.

Resultados

Aún no hay nada que verificar
Introduce el secreto de firma, las cabeceras y el cuerpo sin procesar, o carga un ejemplo.

Detalles

Los pasos de verificación aparecen aquí cuando los datos están completos.
Qué comprueba el verificador

Pega una entrega de webhook (secreto de firma, cabeceras y cuerpo exacto) para recalcular su firma con las reglas del propio proveedor: X-Hub-Signature-256 de GitHub, firmas v0 de Slack sobre la marca de tiempo de la petición, HMAC en Base64 de Shopify, firmas t= y v1= de Stripe (durante la rotación del secreto puede coincidir cualquier v1), webhook-id, webhook-timestamp y webhook-signature de Standard Webhooks y Svix, y un HMAC genérico configurable. La validez de la firma y la vigencia de la marca de tiempo se informan por separado.

Por qué falla la verificación

Las firmas cubren bytes exactos. Cuando una firma no coincide, el verificador reintenta con errores habituales y nombra el primero que coincide: un salto de línea final añadido o perdido, conversión CRLF o LF, JSON analizado y re-serializado, espacios alrededor del secreto, un secreto whsec_ usado sin decodificar de Base64 u otro esquema de proveedor. Las cabeceras ausentes, las firmas mal formadas y las marcas de tiempo antiguas o futuras tienen cada una su propio hallazgo.

Bytes exactos

La verificación siempre usa el cuerpo sin procesar; la vista formateada es solo visual. Los cuadros de texto convierten los saltos CRLF en LF, así que pega el cuerpo en Hex o Base64 o cárgalo desde un archivo cuando importen los bytes exactos. Se aceptan cuerpos de hasta 5 MB y secretos de hasta 64 KB.

Privacidad y límites

Todo se ejecuta en tu navegador con Web Crypto. El secreto solo se guarda en memoria y nunca se almacena, se pone en la URL, se registra ni se envía; solo se recuerdan el proveedor y la tolerancia. La herramienta no reenvía peticiones ni contacta con proveedores, y no verifica firmas asimétricas como Standard Webhooks v1a (Ed25519).

CodingTool ya está oficialmente disponible en

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch