哈希算法又称为散列算法/散列函数,它指的是可以将任意长度的二进制信息转换为一个固定长度的数据集(又称为一个哈希),转换结果通常会使用十六进制值来表示.
哈希算法的特点:
唯一性:不同的信息,哪怕只有极小的不同,理论上导出的哈希值都不相同,也可以称之为“无碰撞”或者“碰撞”的概率非常低.(如下图1)
不可逆性:无法将一个哈希信息反向推导出原始数据(如下图2)
哈希算法有很多,较为常用的哈希算法:MD5,SHA1,SHA2,SHA3(区块链技术中用得最多)
例如数字123,使用MD5的哈希算法后,得到的十六进制值为:202cb962ac59075b964b07152d234b70
哈希算法的用途:
一 信息完整性的校验
信息发送方将原始数据通过哈希算法加密得到一个哈希值,信息接收方在接收到原始数据和哈希后,再通过该哈希算法转换一次,如果得到的哈希值相同,那么就确认说明数据没有被篡改.
二 数字签名
信息发送方将原始数据通过哈希算法加密得到一个哈希值,再把这个哈希值通过私匙进行加密.信息接收方在接收到原始数据和加密后的数据,用公钥来解密就会能得该哈希,通过对比,最后确认身份.