是否有一种算法可以为两个数字产生相同的哈希值,无论它们处于什么顺序?
例如,散列3268
和2642
应该产生与散列2642
和3268
相同的结果。
这可能吗?
答案 0 :(得分:5)
当然,XOR就是这么做的。
3268^2642 == 2642^3268
还有更多(加法,乘法,基本上任何可交换操作),但是XOR通常用于散列(因为它很容易“unhash”)。
答案 1 :(得分:3)
分别对两个数字进行哈希处理(使用您选择的整数到整数哈希),然后添加或xor结果。
答案 2 :(得分:2)
您可以在对两个数字进行散列之前添加或异或。