哈希函数(hash)是将数据输出为固定的不规则值的函数。假设哈希函数(hash)是一台搅拌机,将数据输入到哈希函数中,输出不规则的值,这个输出值称为哈希值。哈希值是一个数字,但是它是以16进制(0123456789ABCDEF)表示。计算机是使用二进制(0和1)来管理计算机里的任何数据,16进制的哈希值在计算机内部进行运算转化为二进制后,计算机也可进行管理。
![bb0ed64a298bdc44d90aa5407bf50bf0.gif](https://img-blog.csdnimg.cn/img_convert/bb0ed64a298bdc44d90aa5407bf50bf0.gif)
哈希函数(hash)是一台搅拌机
让我们来看看哈希函数(hash)的特征。
第一个特征是,输出值的数据长度是固定不变的。输出值的数据长度取决于哈希函数(hash)的算法方式,在散列算法为SHA-1的情况下,它固定为20个字节。因此,即使输入的数据非常大,输出的哈希值的数据长度固定为20个字节。同样,不管输入的数据有多小,输出的哈希值的数据长度固定为20个字节。
![a0e3400cb842cc315801685e99be2a70.gif](https://img-blog.csdnimg.cn/img_convert/a0e3400cb842cc315801685e99be2a70.gif)
第一个特征
第二个特征是,两个相同数据输入后,输出的哈希值也一定相同。
![332dce2e2c39f79ada1011570574d76d.gif](https://img-blog.csdnimg.cn/img_convert/332dce2e2c39f79ada1011570574d76d.gif)
第二个特征
第三个特征是,两个相似数据输入后,即使他们相差只是一点点,输出的哈希值也会有很大的不同(输入相似输出不一定相似)。
![acb43723c6bba1cac179343dffc49fe1.gif](https://img-blog.csdnimg.cn/img_convert/acb43723c6bba1cac179343dffc49fe1.gif)
第三个特征
第四个特征是,两个完全不同数据输入后,即使他们完全不同,输出的哈希值会有低概率相同出现。
![98005cdba3113429fa0402611306b975.gif](https://img-blog.csdnimg.cn/img_convert/98005cdba3113429fa0402611306b975.gif)
第四个特征
第五个特征是,输出的哈希值不能还原为原始数据。
![b4d62d9a6fe2faee4a196963c1979d4a.gif](https://img-blog.csdnimg.cn/img_convert/b4d62d9a6fe2faee4a196963c1979d4a.gif)
第五个特征
最后一个特征是,哈希函数(hash)的加密(运算)相对其他加密方式,较为简单。
![455b8df9d728ce371fe88e98a177a9c1.gif](https://img-blog.csdnimg.cn/img_convert/455b8df9d728ce371fe88e98a177a9c1.gif)
第六个特征
哈希函数(hash)在输入数据转换数据的各种情况下都会被用到。