sha-1 是否会对小于 160 位的输入消息产生冲突?

我有一个128位ID,我想对它执行单向哈希,但我不想为输入消息获得相同的摘要。有谁知道sha-1或替代方案是否保证不会对小于其输出摘要大小的消息集产生冲突?这至少在理论上是可能的...

我还考虑过使用RSA,并丢弃私钥来为我提供单向加密,但我需要将结果存储在32个字符的DB字段中,并且我可用的加密方案不会产生任何足够小的东西。

欢迎提出任何关于另一种方法来产生原始值的确定性,不可逆性和无碰撞变换的建议。


答案 1

加密哈希为给定输入提供了非常好的随机数近似值。那么,在获得相同的160位之前,您需要在房间中有多少个随机哈希值呢?关于平方根(免责声明:我不是统计学家)。因此,您应该期望看到大约80位的冲突。

我想实用性意味着你应该知道宇宙射线何时会成为比碰撞更大的问题。


答案 2

如果要计算从 128 位到 128 位的秘密排列,一个简单的解决方案是使用 128 位块密码,如具有固定但密钥的 AES。当然,你必须能够永远保密密钥,否则你什么都没有。


推荐