我在研究不同的散列函数时遇到了SuperFastHash。这个散列函数使用了一种称为“雪崩”的技术,其定义如下:
/* Force "avalanching" of final 127 bits */
hash ^= hash << 3;
hash += hash >> 5;
hash ^= hash << 4;
hash += hash >> 17;
hash ^= hash << 25;
hash += hash >> 6;
雪崩的目的是什么?为什么使用这些特定的位移位步骤(3,5,4.)?
发布于 2013-04-02 18:56:05
雪崩只是一个术语,用来定义输入对最终结果的微小变化的“扩散”,对于卷积散列来说,其中不可逆性是非常关键的,具有类似的输入提供真正不同的结果是避免近似攻击破解单个散列的理想特征。有关这方面的更多信息,请访问http://en.wikipedia.org/wiki/Avalanche_effect
我不明白它为什么使用这些步骤,但它使用AND和XOR和自己的移位结果来增加扩散,可能其他值也会执行类似的操作,但这需要更深入的分析
https://stackoverflow.com/questions/15762151
复制相似问题