Essayer de signer numériquement via HMAC-SHA1 avec PHP

Je suis en train de mettre en place un Google Maps Premier ministre de l'API d'action, et pour ce faire, j'ai besoin de signer mon Url pour s'authentifier. Si vous vous rendez à la Signature des exemples, il y a quelques Python, C# et Java code pour vous montrer comment faire de la signature par l'algorithme HMAC-SHA1. Il est aussi un exemple pour que je puisse tester mon PHP de mise en œuvre. Cependant, je n'arrive pas à le faire fonctionner.

Voici mon 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=";

Quand, je l'exécute, je obtenir une signature de:

ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==

Qui a totalement ne correspond pas.

Choses que j'ai pensé:

  1. La clé est dans l'URL Modifiée format codé, de sorte qu'un changement - et _ à + et / aussi ne fonctionne pas
  2. L'exemple Python code ne fonctionne en effet, c'est un exemple valable.
  3. La réécriture complète de notre base de code en python à la place de PHP (j'en ai hérité).

source d'informationauteur Conradaroma