哈希函数可以吧给定的数据转换成固定长度的无规律数值,转换后的无规律数值可以作为数据应用于各种场景。
输入固定长度的无规律数值,会输出固定长度的数字,但是这些数字多用十六进制表示。
计算机会用由0和1这链各个数字表示二进制来管理所有的数据。虽然哈希值是用十六进制表示的,但是它也是数据,在计算机内部同样也要用二进制啦进行管理。
以此为前提,哈希函数有以下特征:
1.哈希函数输出的哈希值数据长度不变。
即使输入了相当大的数据,输出的哈利值长度也保持不变
2.输入了相同的数据,哈希值也必定相同
3.即使输入数据相似,哈希值也会有很大的差异
4.即使输入两个数据完全不同,输出的哈希值也有可能是相同的。(这种情况概率比较低,叫作哈希冲突)。
5.不可能从哈希值的反向推算出原本的数据,这点不可逆的操作和加密有很大的不同。
6.求哈希值得计算相对比较容易。
一般用作用户名和密码保存到服务端时候用到哈希函数,且服务端只存储哈希过后的密码。
因为哈希不可逆,所以就算被X窃听也不用担心。
网友评论