我已经读过随机性和均匀分布对哈希函数非常重要。 如何比较两个不同哈希函数的随机性属性?
答案 0 :(得分:1)
取两个测试字符串只有一点点差别,最好只用一位:BBBBBB
,BBBBBC
。使用散列函数获取每个字符串的散列,并通过输入中的一位更改来查看输出的多少位。理想的随机散列函数应切换第二个输出中的一半位:改变输入中的一位会改变输出中的一半位。加密哈希函数试图接近这个理想,而其他哈希函数在某种程度上走向它,但牺牲理想的速度行为。
对许多几对相同的字符串重复以获得第一个散列函数的随机性的平均度量。重复第二个哈希函数。最接近50%的比特平均变化的那个可能是更随机的散列函数。
此测试不会考虑其他标准,如速度。