一个双向哈希算法?

3

是否有一种算法可以为两个数字产生相同的哈希值,无论它们的顺序如何?

例如,将 32682642 哈希应该产生与哈希 26423268 相同的结果。

这种可能性存在吗?


2
“哈希两个数字”是什么意思?哈希函数通常只有一个输入,而不是两个。 - Matt Ball
2
拥有两个输入并不会使哈希函数变得不再是哈希函数,它只需要一个稳定的单一输出即可。 - Blindy
3个回答

5
当然,异或运算可以实现这个功能。
 3268^2642 == 2642^3268

还有很多其他的操作(加法、乘法,基本上是任何可交换的操作),但XOR通常用于哈希(因为它容易“反哈希”)。


4

将这两个数字分别进行哈希(使用你选择的整数到整数的哈希方法),然后将结果相加或异或。


2

在对它们进行哈希之前,您可以将这两个数字相加或异或。


4
在哈希之前添加内容意味着存在简单相关的输入,会产生相同的哈希值,比如(12345,88273)和(12346,88272)。这样会获得比所需更多的对称性,在哈希中过多的对称性是不好的。 - hmakholm left over Monica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接