【发布时间】:2014-10-31 23:13:19
【问题描述】:
我不是密码专家,甚至不是密码学专家,但我需要对 64 位散列进行去相关(对于 SimHash 算法,以防万一)。如果我采用 SHA1 的最低 64 位具有超过 64 位密钥(8 字节),它的结果保证是唯一的吗?它很可能是“足够独特”,但我想确定一下。
(为了回答“我尝试过什么”,我运行了一个 for 循环,上面的 32 部分从 0 迭代到 10000,而下面的 32 位也没有命中。)
【问题讨论】:
-
我看不出为什么。 8 位数字的截断为 8 位 sha1 不是唯一的。 (SHA1(11)和SHA1(186)的低8位都是6。)
-
不错。它更痛苦,但我会修改为使用完整的 20 字节密钥。