定义
哈希函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度来看,哈希函数之间性能、质量等方面的比较,可以通过其在伪随机生成质量方面的比较来衡量。
评价体系:
1、泊松分布可以用于分析不同的哈希函数对不同的数据的碰撞率(collision rate)。
2、算法复杂度,以及运行时间。
3、位偏向。哈希函数生成随机位序列时,产生高、低位的位偏向应该各为50%。
4、完美的哈稀函数不存在,只能寻找特定数据集上最满意的函数。
冲突
1、冲突会影响效率。
2、三个影响冲突的因素:散列函数是否均匀、处理冲突的方法、散列表的装填因子(填入表中的元素个数 / 散列表的长度)。
3、常见冲突处理方案:继续寻找下一个散列地址、在当前位置使用链表保存、建立公共溢出区。
指导思想
1、对数据进行哈希操作,如加法、乘法、移位等操作变换,来产生哈希值。
2、无法证明素数的参与会使哈希操作的结果熵更大,但事实这么做确定取得了不错的结果。
常用算法
字符串哈希
MD4、MD5、SHA-1等。
用于数据索引,或结构化支撑,如哈希表。
加密
数据库中密码存放。
信息摘要
防止信息在传输过程中被篡改
几何哈希
一种图像匹配算法。
可参考:基于Harris和几何哈希法的目标匹配