消息摘要算法有:MD类,SHA类,MAC类,他们对传入数据没有长度限制,然后返回一定长度的摘要,所以他们可以做文件完整性验证防止文件篡改。并且他们是不可逆的,这点很好理解比如一个2g的文件用MD5加密后生成的摘要长度就只有128位,这个根本不能推出源文件。MAC是基于MD类和SHA类对他们生成的摘要进行加密,相对于前两者后者显然更加安全。mac的加密过程。
//生产密钥生产器
KeyGenerator keyGenerator=KeyGenerator.getInstance("HmacMD5");
//生产密钥
SecretKey secretKey=keyGenerator.generateKey();
//生成hmac对象
Mac mac=Mac.getInstance("HmacMd5");
//初始化它加密摘要的密钥
mac.init(secretKey);
//进行加密
mac.doFinal(data);
这样就对摘要进行了加密,但是怎么将这个摘要解密回来啦?因为Cipher并没有提供HmacMD5算法的实例,求大神讲解?