Intentando firmar digitalmente a través de HMAC-SHA1 con PHP
Estoy intentando configurar alguna acción de la API Premier de Google Maps, y para hacerlo, necesito firmar mis URL para autenticarme. Si baja a los ejemplos de Firma, hay algunos códigos Python, C # y Java para mostrarle cómo hacer la firma a través de HMAC-SHA1. También hay un ejemplo para que pueda probar mi implementación de PHP. Sin embargo, parece que no puedo hacer que funcione.
Aquí está mi código:
$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=";
Cuando ejecuto esto, obtengo una firma de:
ZDRlNGMwZjIyMTA1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==
Lo cual no coincide totalmente.
Cosas que he pensado:
La clave está en formato codificado URL modificado, por lo que cambia-
y_
a+
y/
tampoco funcionaEl código de ejemplo de Python sí funciona, por lo que este es un ejemplo válido.Reescribiendo completamente nuestra base de código en python en lugar de PHP (lo heredé).