2

我有一个 sha-160 计算,可以为我的数据提供 160 位哈希,但我希望这比必要的要大得多。所以我想我可以将生成的哈希截断为低 64 位并使用它。

采用 sha-160 哈希计算的低 64 位是否会给出合理随机的 64 位哈希?

4

1 回答 1

5

一个好的哈希值的部分含义是它的比特的任何固定子集也是(尽可能地,给定多少比特)一个好的哈希值。SHA-160 哈希的低 64 位应该是一个好的 64 位哈希,只要有这样的东西。

请注意,出于某些目的,64 位实际上并没有那么多。例如,如果当有人发现两个具有相同哈希的不同事物时,您的应用程序出现任何问题,您可能想要更长的时间:平均而言,只需要数十亿次的试验即可找到具有相同 64 位哈希的两个事物,不管你的散列算法是什么。

如果你只使用所有 160 位会发生什么坏事?

于 2011-03-23T00:59:47.197 回答