【发布时间】:2015-05-18 17:42:05
【问题描述】:
谁能帮我理解 160 位 (SHA-1) 哈希的最高有效字节是什么?
我有一个 C# 代码,它调用密码库从数据流中计算哈希码。结果我得到一个 20 字节的 C# 数组。然后我从另一个数据流中计算另一个哈希码,然后我需要将哈希码按升序排列。
现在,我正在尝试了解如何正确比较它们。显然我需要从另一个中减去一个,然后检查结果是负数、正数还是零。从技术上讲,我有 2 个 20 字节的数组,如果我们从内存的角度来看,它的开头是最低有效字节(较低的内存地址),最后是最高有效的字节(较高的内存地址)。另一方面,从人类阅读的角度来看,最重要的字节在开头,最不重要的字节在结尾,如果我没记错的话,这个顺序用于比较 GUID。当然,如果我们使用一种或另一种方法,它会给我们不同的顺序。哪种方法被认为是比较哈希码的正确或常规方法?这在我们的案例中尤其重要,因为我们正在考虑实现一个应该与现有哈希表兼容的分布式哈希表。
【问题讨论】:
标签: c# .net sha1 dht endianness