脚本宝典收集整理的这篇文章主要介绍了尝试使用PHP通过HMAC-SHA1进行数字签名,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的代码:
$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=";
当我运行这个,我得到一个签名:
ZDRlNGMwZjIymta1MWM1Zjk0Nzc4M2NkYjlmNDQzNDBkYzk4NDI4Zg==
哪个完全不匹配.
我想到的事情
>关键是修改URL编码格式,所以更改 – 和_到和/也不工作
> Python示例代码确实有效,所以这是一个有效的例子.
>完全重写我们的代码基础在Python而不是PHP(我继承它).
Google使用特殊的URL安全Base64.正常的base64_decode不起作用
>您需要以二进制形式生成SHA1.
尝试这个,
$key = "vNIXE0xscrmjlyV-12Nj_BvUPaw="; $data = "/maps/api/geocode/json?address=New+York&sensor=false&client=clientID"; $my_sign = hash_hmac("sha1",base64_decode(strtr($key,'-_','+/')),true); $my_sign = strtr(base64_encode($my_sign),'+/','-_');
以上是脚本宝典为你收集整理的尝试使用PHP通过HMAC-SHA1进行数字签名全部内容,希望文章能够帮你解决尝试使用PHP通过HMAC-SHA1进行数字签名所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。