为了验证来自Google 安全浏览 API的数据,您可以计算每次更新的消息验证码 (MAC)。执行此操作的说明(来自 Google)是:
MAC 是从 MD5 摘要中根据以下信息计算得出的:client_key|separator|table data|separator|client_key。分隔符是字符串:coolgoog: - 这是一个冒号,后跟“coolgoog”,后跟一个冒号。生成的 128 位 MD5 摘要采用 websafe base-64 编码。
还有要检查的示例数据:
client key: "8eirwN1kTwCzgWA2HxTaRQ=="
回复:
[goog-black-hash 1.180 update][mac=dRalfTU+bXwUhlk0NCGJtQ==]
+8070465bdf3b9c6ad6a89c32e8162ef1
+86fa593a025714f89d6bc8c9c5a191ac
+bbbd7247731cbb7ec1b3a5814ed4bc9d
*Note that there are tabs at the end of each line.
我无法获得比赛。请指出我哪里出错了,或者只写几行必要的 Python 代码!
FWIW,我希望能够做这样的事情:
>>> s = "+8070465bdf3b9c6ad6a89c32e8162ef1\t\n+86fa593a025714f89d6bc8c9c5a191ac\t\n+bbbd7247731cbb7ec1b3a5814ed4bc9d\t"
>>> c = "8eirwN1kTwCzgWA2HxTaRQ=="
>>> hashlib.md5("%s%s%s%s%s" % (c, ":coolgoog:", s, ":coolgoog:", c)).digest().encode("base64")
'qfb50mxpHrS82yTofPkcEg==\n'
但如您所见,'qfb50mxpHrS82yTofPkcEg==\n' != 'dRalfTU+bXwUhlk0NCGJtQ=='。