【问题标题】:Hash computation in Google safe browsing V2 implementationGoogle 安全浏览 V2 实现中的哈希计算
【发布时间】:2013-04-19 19:15:45
【问题描述】:

我正在尝试测试我的 google 安全浏览 api 版本 2 的实现。 为了测试发送给定前缀的完整哈希请求的代码的一部分,我捕获了一小段流量,在其中我访问了一个已知的当前列入黑名单的 url “utfvq.portrelay.com”,并且 Firefox 向谷歌发送了一个完整哈希的请求谷歌回应了一个哈希列表。

firefox 发送的前缀是(十六进制编码):2e2e372e,2e26382e,2e2e382e,6545382e

它收到的 4 个匹配的完整哈希是:

2e26382e2e2e436d2e2e2e2e322e3b2e2e2e2e2e4a2e2e2e7b2e2e2e6a492e2e
6545382e2e2a5b792e652e2e2e2e2e2e2e2e70442e7d2e2e2e222e2e502e2e2e
2e2e382e6c36252e2e522e2e592e2e2e2e2e3f592e2e2e782e2e572e4e2e2e2e
2e2e372e2e2e2e2e55682e542e51622e552e2e68352e2e2e2e2e2e2e2ed2755

然而,在我的实现中,我生成的哈希前缀似乎与 firefox 发送的哈希前缀不匹配。因此,我的客户端没有得到任何完整的哈希匹配。

我已经密切关注 google 对 API 的描述,并确保前面的步骤(例如 url 规范化)得到正确实施。

我得到的 url,SHA256 哈希是

utfvq.portrelay.com/:5c2383012676e63656c13167e1cc4f55309c4e1b73c22556e36ec1487e8b8697

portrelay.com/ : 842638fe92ee436da7808d0232d03bcaa0f5c8b64ad5eee97bf28dbb6a49f8ae

有人能指出为什么哈希不匹配吗?据我所知,我已遵循 API 指南。我缺少一些实现细节吗?

【问题讨论】:

    标签: api sha256 safe-browsing


    【解决方案1】:

    结果证明这是我的基本字符编码错误。

    我在代码中计算的 SHA 哈希值是正确的。我查看 Firefox 发送的哈希值的方式是错误的。我从一个文本文件中复制了字符,该文件将任何不在常规 ascii 范围内的字节存储为点(。)。然后我将这些转换为十六进制值,这是一种“有损”编码。这就是为什么哈希中有这么多“2e”十六进制字符的原因。现在我只使用原始字节并且它们匹配。

    【讨论】:

    • 您好,您能详细告诉我如何生成 URL 字符串的哈希前缀吗?
    猜你喜欢
    • 1970-01-01
    • 2019-07-17
    • 2012-06-03
    • 2011-06-08
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多