Reconstruye la cadena firmada, calcula el HMAC y explica por qué una firma coincide o falla. Todo el cálculo ocurre en este navegador.
Sin cargas, cookies, almacenamiento, analítica ni anuncios en esta página.
Resultado local
Inspección
Sin verificar
Formato
—
Bytes firmados
—
Algoritmo
HMAC-SHA256
Distancia del reloj
—
Cadena firmada
Firma esperada
Firma recibida
Mapa de bytes UTF-8
Estructura de cabecera
Hipótesis locales de transformación
Diagnóstico
Método técnico
De texto visible a cadena firmada
La firma depende de una secuencia de bytes, no del significado del JSON. Esta página convierte el texto ingresado a UTF-8, construye la cadena del preset y expone sus offsets antes de calcular HMAC-SHA256.
Cadena canónica
GitHub firma directamente el payload UTF-8. Stripe antepone el timestamp decimal y un punto: t.payload. El modo genérico firma solo el texto ingresado. El mapa hexadecimal hace visibles BOM, bytes multibyte, tabs, espacios finales y combinaciones LF, CRLF o CR.
Lectura de un fallo
Un HMAC distinto no revela qué byte del payload cambió. El laboratorio prueba localmente hipótesis acotadas — saltos de línea, BOM, espacio exterior, salto final y serialización JSON compacta — y solo informa una causa cuando esa variante reproduce exactamente la firma recibida.
Reloj y replay
En Stripe, una firma criptográfica puede coincidir y aun así quedar fuera de tolerancia. La distancia de reloj se evalúa por separado. Esta comprobación local no recuerda eventos vistos ni impide que una solicitud firmada sea reenviada.
Límite del navegador
El textarea representa una cadena JavaScript convertida a UTF-8 y normaliza saltos pegados a LF según el DOM. El laboratorio puede contrastar firmas producidas con CRLF o CR, pero la vista no sustituye la captura de bytes crudos de un servidor ni representa archivos binarios arbitrarios. Una coincidencia tampoco autentica la conexión de red.
Matriz de diagnóstico
Observación
Interpretación acotada
Comprobación siguiente
Digest correcto, reloj fuera
El secreto y la cadena coinciden; la marca temporal excede la tolerancia.
Sincronizar relojes y revisar la política de replay.
Coincide solo con LF o CRLF
La entrega y la copia usan terminadores de línea distintos.
Capturar el cuerpo antes del parser o middleware.
Coincide solo sin BOM
Una representación añadió U+FEFF al inicio.
Comparar los primeros bytes recibidos.
Coincide solo con JSON compacto
Alguna capa probablemente parseó y serializó el cuerpo.
Verificar la solicitud cruda antes de interpretar JSON.
Ninguna hipótesis coincide
No hay evidencia para atribuir la causa a una transformación probada.
Revisar secreto, cabecera, algoritmo y captura byte a byte.
Diferencia comprobable
Cobertura frente a verificadores directos
La comparación del 15 de agosto de 2026 no presume exclusividad por usar Web Crypto. AquilaX, EventDock y Meshes ya verifican localmente varios proveedores. Wekaton concentra el alcance en tres modos y añade inspección de la cadena, offsets UTF-8, estructura de cabecera y reproducción exacta de transformaciones comunes.
GitHub, Stripe, Slack, Shopify, Twilio, SendGrid y modo custom.
Mapa hexadecimal con offsets; inventario de BOM, Unicode y saltos; cabecera descompuesta; comparación de bytes del digest; hipótesis locales verificadas contra la firma.