一、Hash函数
哈希函数就是能将任意长度的数据映射为固定长度的数据的函数。哈希函数返回的值被叫做哈希值、哈希码、散列,或者直接叫做哈希。
二、消息摘要
将长度不固定的消息(message)作为输入参数,运行特定的Hash函数,生成固定长度的输出,这个输出就是Hash,也称为这个消息的消息摘要(Message Digest)
信息摘要算法是hash算法的一种,具有以下特点:
- 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的,计算出的结果越长,一般认为该摘要算法越安全,MD5 128位 SHA-1 160位
- 输入的消息不同,产生的消息摘要必不同,输入的消息相同,产生的消息摘要一定是相同的
- 单向不可逆
三、MessageDigest
java中通过MessageDigest来为程序提供消息摘要算法的功能,例如md5 和sha,这个经常会使用的到,这里就不多解释了
标记解释
- 通过入参的算法名获取MessageDigest实例,入参例如:MD2 MD5 SHA-1 SHA-256 SHA-384 SHA-512
- 指定的算法摘要的提供者,可通过
Security.getProviders()