Utilo

Calculadora de firmas HTTP

Calcula y depura firmas de peticiones API paso a paso: AWS Signature V4, Alibaba Cloud ACS3, Tencent Cloud TC3-HMAC-SHA256 y OAuth 1.0a, y verifica firmas de webhooks de GitHub, Stripe y Slack, todo localmente con Web Crypto.

Qué hace este calculador de firmas HTTP

"La firma de solicitud que calculado no coincide con la firma que proporcionó" es uno de los errores más frustrantes en el trabajo de la API, porque el servidor nunca le dice * que * paso salió mal. Esta calculadora reproduce todo el proceso de firma para AWS Signature Version 4, Alibaba Cloud ACS3-HMAC-SHA256, Tencent Cloud TC3-HMAC-SHA256 y OAuth 1.0a HMAC-SHA1, y muestra todos los valores intermedios: la solicitud canónica, su hash, la cadena para firmar, la clave de firma derivada y la firma final y los encabezados. También verifica las firmas de webhook entrantes de GitHub, Stripe y Slack. Toda la criptografía utiliza la API Web Crypto del navegador, por lo que sus claves secretas permanecen en su dispositivo.

Cómo usarlo

  1. Escoge la cuenta del proveedor.
  2. Introduzca el método, la URL, los encabezados (una Name: value por línea) y el cuerpo exactamente como su código los envía.
  3. Introducir la clave de acceso, la clave secreta y, en su caso, la región y el servicio. Haga clic en Usar la hora actual o fije una marca de tiempo fija para comparar con una solicitud capturada.
  4. Compare cada paso con lo que su SDK o registro de código. El primer paso que difiere es dónde está el insecto.
  5. Para webhooks, pegue el cuerpo de la solicitud en bruto byte por byte, el encabezado de la firma y su secreto de firma, y la herramienta le dice si coincide.

Causas comunes de las discrepancias de la firma

  • Codificación de URI canónica: AWS codifica cada segmento de ruta; S3 no codifica de forma doble.
  • ** Ordenamiento de la consulta:** Los parámetros deben ordenarse por clave codificada, y los valores vacíos aún necesitan =.
  • ** Cabeceras firmadas:** Los nombres de las cabeceras están en minúsculas, recortadas, ordenadas y unidas con ;. Olvidar host o x-amz-date es común.
  • Hash de carga útil: S3 requiere el encabezado x-amz-content-sha256; otros servicios solo hashan el cuerpo.
  • Disparidad del reloj: la mayoría de los proveedores rechazan solicitudes con más de 515 minutos de diferencia.
  • ** Webhooks: ** los frameworks a menudo analizan y vuelven a serializar JSON antes de verlo. Verifique con los bytes sin procesar, no un objeto re-codificado. Las rayas señalan timestamp.body, las flacas señalan v0:timestamp:body.

Preguntas frecuentes

¿Es seguro introducir mi llave secreta?

La página realiza todos los cálculos localmente con Web Crypto y no envía nada. Para los secretos de producción, prefiera credenciales temporales o una clave de prueba de todos modos.

¿Se ha probado la implementación de AWS?
  • Sí, es cierto. Reproduce las firmas de ejemplo de la documentación de AWS Signature Version 4, que forman parte de las pruebas automatizadas del sitio.
¿Apoya AWS SigV4A o direcciones URL presignadas?
  • No, todavía no. Se admite SigV4 basado en encabezado; la firma de cadena de consulta presignada está en la hoja de ruta.
¿Por qué necesita OAuth 1.0a los parámetros de mi cuerpo?

Para los cuerpos codificados con formulario, los parámetros forman parte de la cadena de base de la firma. Los cuerpos JSON no están incluidos.

Sí. Todo el procesamiento se realiza directamente en tu navegador mediante JavaScript, Web Workers y APIs web. Nada de lo que escribes, pegas o subes se envía a nuestros servidores.

Esta página se tradujo automáticamente del inglés. Si encuentras un error, avísanos.