一、什么是Hash算法
Hash算法(哈希算法,Hash算式,散列算法,消息摘要算法)将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。
简单来说就是,哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。
二、Hash算法的特性
1、正向快速
给定明文和Hash算法,在有限时间和有限资源内能计算得到Hash值。
2、单项不可逆
只能单项从数据内容本身快速计算出对应的Hash值,反之无法从Hash值推算出数据内容本身。
3、不可预测
原始输入信息发生任何变化,新的Hash值都应该出现很大变化。
4、唯一性
不同的数据具有不同的Hash值。很难找到两个Hash值一致,但数据本身不一致的数据。
三、Hash算法有哪些
目前常见Hash算法有MD5和SHA系列,但是据说目前MD5和SHA1已经被攻破,所以一般推荐至少使用SHA2-256算法。
前面说了Hash算法就是可以将任意数据生成固定长度的16进制字符串,这里的数据可以