为了验证来自Google Safe Browsing API的数据,可以为每个更新计算一个消息验证码(MAC)。执行此操作的说明(来自谷歌)是:
The MAC is computed from an MD5 Digest over the following information: client_key|separator|table data|separator|client_key. The separator is the string:coolgoog: - that is a colon followed by "coolgoog" followed by a colon. The resulting 128-bit MD5 digest is websafe base-64 encoded.
还有一些示例数据需要检查:
client key: "8eirwN1kTwCzgWA2HxTaRQ=="
回应:
^{pr2}$我找不到匹配的。请指出我的错误所在,或者只写几行必要的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+bxwulk0ncgjtq=='。在
Anders的回答给出了必要的信息,但不是那么清楚:在合并客户机密钥之前,需要对其进行解码。(上面的示例在最后的表数据末尾也缺少一个换行符)。在
所以工作代码是:
相关问题 更多 >
编程相关推荐