什么是Hash
Hash也称散列、哈希。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是Hash算法,而原始数据映射后的二进制串就是哈希值。
函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
我们日常使用的MD5和SHA都是常用的Hash算法。
echo md5("这是一个测试文案");
// 输出结果:2124968af757ed51e71e6abeac04f98d
在这个例子里面,
"这是一个测试文案"是原始值,
“2124968af757ed51e71e6abeac04f98d”就是经过Hash算法得到的Hash值。
整个过程就是把任意长度的值空间映射成固定长度的值空间的过程。
好的哈希函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。