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
Detalles
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).
