Versuche, mit PHP über HMAC-SHA1 digital zu signieren

Ich versuche, eine Google Maps Premier-API-Aktion einzurichten. Dazu muss ich meine URLs zur Authentifizierung signieren. Wenn Sie sich die Signaturbeispiele ansehen, finden Sie Python-, C # - und Java-Code, der Ihnen zeigt, wie Sie die Signatur über HMAC-SHA1 erstellen. Es gibt auch ein Beispiel, mit dem ich meine PHP-Implementierung testen kann. Ich kann es aber einfach nicht zum Laufen bringen.

Hier ist mein Code:

$key = "vNIXE0xscrmjlyV-12Nj_BvUPaw=";

$data = "/maps/api/geocode/json?address=New+York&sensor=false&client=clientID";

$my_sign = hash_hmac("sha1", $data, base64_decode($key));
$my_sign = base64_encode($my_sign);

$valid_sign = "KrU1TzVQM7Ur0i8i7K3huiw3MsA=";

Wenn ich dies ausführe, erhalte ich eine Signatur von:

ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==

Welche total nicht passt.

Dinge über die ich nachgedacht habe:

Der Schlüssel hat das Format "Modified URL encoded" (Geänderte URL- und_ zu+ und/ funktioniert auch nichtDer Python-Beispielcode funktioniert tatsächlich, dies ist also ein gültiges Beispiel.Völliges Umschreiben unserer Codebasis in Python anstelle von PHP (ich habe es geerbt).

Antworten auf die Frage(6)

Ihre Antwort auf die Frage