Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 sha-160 计算,可以为我的数据提供 160 位哈希,但我希望这比必要的要大得多。所以我想我可以将生成的哈希截断为低 64 位并使用它。
采用 sha-160 哈希计算的低 64 位是否会给出合理随机的 64 位哈希?
一个好的哈希值的部分含义是它的比特的任何固定子集也是(尽可能地,给定多少比特)一个好的哈希值。SHA-160 哈希的低 64 位应该是一个好的 64 位哈希,只要有这样的东西。
请注意,出于某些目的,64 位实际上并没有那么多。例如,如果当有人发现两个具有相同哈希的不同事物时,您的应用程序出现任何问题,您可能想要更长的时间:平均而言,只需要数十亿次的试验即可找到具有相同 64 位哈希的两个事物,不管你的散列算法是什么。
如果你只使用所有 160 位会发生什么坏事?