我正在尝试模拟google + button。在LINK的一部分代码中,它将 session ID转换为某种哈希。我发现 session ID名称为SAPISID,转换后的哈希名称为SAPISIDHASH,谁能告诉我代码的哪一部分哈希部分。任何帮助将不胜感激。我已经花了6个小时了,仍然没有头绪:(

例如VUOyLIU22fNPz2ko/AbGsxW03_WHoGjaJq is SAPISIDf17aa630b9b9a105dad437b0fedcafe429f6fca2 is SAPISIDHASH。在php中,我尝试了所有的hash..nothing匹配项。

最佳答案

胜利!对我来说,至少= p我正在寻找的SAPISIDHASH是api控制台中的那个。自动化用于相当大的工作,完全合法。

无论如何->我发现的是当前javascript毫秒时间戳上的SHA1加上cookie中的当前SAPISID以及域来源

为了使我的请求正常工作,我必须在请求中包含以下 header Authorization:SAPISIDHASH 1439879298823_<hidden sha1 hash value>X-Origin:https://console.developers.google.com
我假设的第一个 header 会告诉服务器您的时间戳和sha1值。第二个(如果不包含则中断)告诉它在sha1算法中使用的原点。

我通过挖掘并调试大量精简js 中的 hell 发现了该算法。注意,在值之间附加了空格

伪代码基本上是>
sha1(new Date().getTime() + " " + SAPISID + " " + origin)
至少这是我如何在2015年在我的用例中获得SAPISIDHASH值的方式(几年后我知道)...与您的情况不同,但是也许有一天我会帮助其他一些年轻的黑客

09-25 16:57