定义
哈希函数(英語:Hash function)又称散列函数、散列函数、摘要算法、单向散列函数。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个(哈希函数返回的值)称为指纹、哈希值、哈希代码、摘要或散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。[1]好的散列函数在输入域中很少出现散列冲突。
完美哈希函数 就是指没有冲突的哈希函数。
如今,散列算法也被用来加密存在数据库中的密码(password)字符串,由于散列算法所计算出来的散列值(Hash Value)具有不可逆(无法逆向演算回原本的数值)的性质,因此可有效的保护密码。
使用哈希函数为哈希表编制索引称为哈希或分散存储寻址。
哈希函数的特性:
- 单向散列函数(one-wayhash function),也就是通俗叫的哈希函数。
- 第一个特点:输入可以任意长度,输出是固定长度
- 第二个特点:计算hash值的速度比较快
- 第三个特点,防碰撞特性(Collisionresistance)
- 第四个特点:隐藏性(Hiding)或者叫做单向性(one-way)
- 第五点:谜题友好(puzzlefriendly)