消息摘要算法:MD类,SHA类,Mac,他们都是可以传入长度不限的数据返回一个与之对应的有限长度的摘要,一般这个摘要是唯一的,理想状态下,只要文件一变化摘要也会随之改变,根据这一特性可以用做文件完整性验证和防止文件篡改,并且这一过程是不可逆的。Mac是基于MD类和SHA类并对其生成的摘要进行加密,所以相对于前两者后者更加安全。
//生产密钥生产器
KeyGenerator keyGenerator=KeyGenerator.getInstance("HmacMD5");
//生产密钥
SecretKey secretKey=keyGenerator.generateKey();
//生成hmac对象
Mac mac=Mac.getInstance("HmacMd5");
//初始化它加密摘要的密钥
mac.init(secretKey);
//进行加密
mac.doFinal(data);
这样就完成了Mac加密操作上面是基于MD5技术进行的,但是怎么解密啦?因为Cipher并没有提供HmacMD5加密实例对象,怎么对他的摘要进行解密啦?求大神讲解。