Was dieser HTTP Signaturrechner tut
"Die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen bereitgestellten Signatur überein" ist einer der frustrierendsten Fehler in der API-Arbeit, weil der Server Ihnen nie sagt, welcher Schritt falsch gelaufen ist. Dieser Rechner reproduziert den gesamten Signaturprozess für AWS Signature Version 4, Alibaba Cloud ACS3-HMAC-SHA256, Tencent Cloud TC3-HMAC-SHA256 und OAuth 1.0a HMAC-SHA1 und zeigt jeden Zwischenwert: die kanonische Anfrage, ihren Hash, die zu signierende Zeichenfolge, den abgeleiteten Signaturschlüssel und die endgültige Signatur und Kopfzeilen. Es überprüft auch eingehende webhook Signaturen von GitHub, Stripe und Slack. Alle Kryptographie verwendet die Web-Crypto-API des Browsers, so dass Ihre geheimen Schlüssel auf Ihrem Gerät bleiben.
So verwenden Sie es
- Wählen Sie die Anbieter-Tab.
- Geben Sie die Methode, die URL, die Header (ein
Name: valuepro Zeile) und den Körper genau so ein, wie Ihr Code sie sendet. - Geben Sie den Zugangsschlüssel, den geheimen Schlüssel und gegebenenfalls die Region und den Dienst ein. Klicken Sie auf Use current time oder stecken Sie einen festen Zeitstempel ein, um ihn mit einer erfassten Anfrage zu vergleichen.
- Vergleichen Sie jeden Schritt mit dem, was Ihr SDK oder Code protokolliert. Der erste Schritt, der sich unterscheidet, ist, wo sich der Käfer befindet.
- Bei Webhooks fügen Sie den Rohanforderungskörper Byte-für-Byte, den Signaturheader und Ihr Signaturgeheimnis ein, und das Tool sagt Ihnen, ob er übereinstimmt.
Häufige Ursachen für Unterschriftsausfälle
- Kanonische URI-Codierung: AWS kodiert jedes Pfadsegment; S3 kodiert nicht doppelt.
- ** Abfrageanordnung:** Parameter müssen nach dem verschlüsselten Schlüssel sortiert werden, und leere Werte benötigen immer noch
=. - ** Unterschriebene Überschriften:** Die Überschriftennamen sind klein geschrieben, geschnitten, sortiert und mit
;verbunden. Es ist üblich,hostoderx-amz-datezu vergessen. - ** Payload-Hash:** S3 benötigt den
x-amz-content-sha256-Header; andere Dienste hashen nur den Körper. - Uhrverschiebung: Die meisten Anbieter lehnen Anfragen ab, die mehr als 515 Minuten abweichen.
- Webhooks: Frameworks analysieren und serialisieren oft JSON, bevor Sie es sehen. Überprüfen Sie gegen die Roh-Bytes, nicht gegen ein neu codiertes Objekt. Streifenzeichen
timestamp.body, Slackzeichenv0:timestamp:body.