散列函数有哪些特点
散列函数必须具备两个基本特征:单向性和碰撞约束。
单向性是指其的操作方向的不可逆性,在散列函数中是指只能从输入推导出输出,而不能从输出计算出输入;碰撞约束是指不能找到一个输入使其输出结果等于一个已知的输出结果 或者 不能同时找到两个不同的输入使其输出结果完全一致。
散列函数:把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,即散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
![](http://yyk.iask.sina.com.cn/pic/fimg/160992424089376971853.jpg)