摘要加密-Digester和HMac
但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是不可逆的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证。
HMAC介绍
HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码”,主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息。HMAC 可以与任何迭代散列函数捆绑使用。MD5 和 SHA-1 就是这种散列函数。HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥。
- MD2
- MD5
- SHA-1
- SHA-256
- SHA-512
Hmac算法
- HmacMD5
- HmacSHA1
- HmacSHA256
- HmacSHA384
- HmacSHA512
摘要对象被抽象为两个对象:
- Digester
以MD5为例:
HMac
以HmacMD5为例:
在4.2.1之后,Hutool借助Bouncy Castle库可以支持国密算法,以SM3为例:
然后可以调用SM3算法,调用方法与其它摘要算法一致: