假设您有两个哈希H(A),H(B)并且想要将它们组合在一起。我已经读到,将两个散列组合在一起的一种好方法是使用XOR它们,例如XOR( H(A), H(B) )。
这些哈希函数准则在此简要地介绍了我找到的最佳解释:
对两个具有大致随机分布的数字进行异或运算会导致另一个仍具有大致随机分布*的数字,但现在取决于这两个值。
...
*在要组合的两个数字的每一位,如果两位相等,则输出0,否则为1。换句话说,在50%的组合中,将输出1。因此,如果两个输入位各自有大约50-50的可能性为0或1,那么输出位也是如此。
您能解释为什么XOR应该是用于组合哈希函数(而不是OR或AND等)的默认操作的直觉和/或数学方法吗?
慕慕森
侃侃尔雅