什么是散列算法?
在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它可以对不同长度的输入数据,然后产生一个固定的长度的输出值,该输出值就是散列值。
所以应用的时候,就可以通过散列算法对比两个数据的散列值是否一样。
常用的散列算法有哪些?
MD5
全称为:Message Digest Algorithm ,即中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
SHA
全称为:Secure Hash Algorithm,即安全哈希算法,主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。
SHA系列算法有 SHA-1,SHA-224,SHA-256,SHA-384,SHA-512这五种单向散列算法,其中SHA-1已经不安全了,不推荐使用了。
HMAC
全称为:Hash Message Authentication Code,即散列消息鉴别码,主要是利用哈希算法,以一个秘钥和一个消息为输入,生成一个消息摘要作为输出,消息鉴别码用于验证传输于两个共同享有一个秘钥的单位之间的消息。
HMAC可以与任务迭代散列函数捆绑使用,HMAC还可以使用一个用于计算和确认消息鉴别值的秘钥。
散列算法的应用场景有哪些?
1. 数据加密
用来存储用户敏感信息,如用户密码等其他不可解密的信息但能通过对比验证其正确性。
2. 数据校验
比较可以用来校验下载文件的正确性,一般在网站上下载文件都能见到,防止下载的文件不正确。
另外还有像接口参数的签名验证,可用于验证接口参数的有效性。
3. 唯一标识
比如要求某XX信息不能重复,这时候可以利用散列算法生产做对比。