Api Google安全浏览V2实现中的哈希计算

Api Google安全浏览V2实现中的哈希计算,api,sha256,safe-browsing,Api,Sha256,Safe Browsing,我正在尝试测试我的谷歌安全浏览api版本2的实现。 为了测试发送给定前缀的完整哈希请求的代码的一部分,我捕获了一个简短的通信会话,在该会话中,我访问了一个已知的当前被列入黑名单的url“utfvq.portrelay.com”,firefox向google发送了完整哈希请求,google用哈希列表进行了响应 firefox发送的前缀是(十六进制编码):2e2e372e、2e26382e、2e2e382e、6545382e 它收到的4个匹配的完整哈希是: 2e26382e2e2e436d2e2e2

我正在尝试测试我的谷歌安全浏览api版本2的实现。 为了测试发送给定前缀的完整哈希请求的代码的一部分,我捕获了一个简短的通信会话,在该会话中,我访问了一个已知的当前被列入黑名单的url“utfvq.portrelay.com”,firefox向google发送了完整哈希请求,google用哈希列表进行了响应

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

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

2e26382e2e2e436d2e2e2e2e322e3b2e2e2e2e2e4a2e2e2e7b2e2e2e6a492e2e
6545382e2e2a5b792e652e2e2e2e2e2e2e2e70442e7d2e2e2e222e2e502e2e2e
2e2e382e6c36252e2e522e2e592e2e2e2e2e3f592e2e2e782e2e572e4e2e2e2e
2e2e372e2e2e2e2e55682e542e51622e552e2e68352e2e2e2e2e2e2e2ed2755
然而,在我的实现中,我生成的哈希前缀似乎与firefox发送的哈希前缀不匹配。因此,我的客户机中没有任何完整的哈希匹配

我密切关注Google对API的描述,并确保正确实施了前面的步骤,如url规范化

我得到的url、SHA256哈希是

utfvq.portrelay.com/:
5c2383012676e63656c13167e1cc4f55309c4e1b73c22556e36ec1487e8b8697

portrelay.com/:
842638fe92ee436da7808d022d03bcaa0f5c8b64ad5ee97bf28dbb6a49f8ae


有人能指出散列不匹配的原因吗。据我所知,我一直遵循API指南。是否缺少一些实现细节?

这是我的一个基本字符编码错误


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

嘿,你能详细告诉我如何生成URL字符串的哈希前缀吗?