一、简述
除了MD、SHA和MAC三大主流信息摘要算法之外,还有一些不常见的消息摘要算法。包括RipeMD系列、Tiger、Whirlpool和Gost3411算法。同时,RipeMD算法和MAC算法系列相结合,有产生了HmacRipeMD128和HmacRipeMD160两种算法。
针对这些算法进行简单介绍
1、RipeMD算法:针对MD4和MD5算法缺陷分析提出的算法。这些算法主要是针对摘要值得长度进行了区分
2、Tiger算法:号称最快的Hash算法,专门针对64为机器做优化了。其消息长度为192位
3、Whirlpool:被列入iso标准。与AES加密标准使用了相同的转化技术,极大提高了安全性,被称为最安全的摘要算法,长度为512位
4、Gost3411:信息摘要长度为256位
这些算法的实现java6都没提供。这里BouncyCastle进行了支持。其实这些算法的调用都一个样,就是换一个调用的名字而已。
二、RipeMD算法和HmacRipeMD算法系列
算法 | 摘要长度 | 备注 |
RipeMD128 | 128 | BouncyCastle实现 |
RipeMD160 | 160 | BouncyCastle实现 |
RipeMD256 | 256 | BouncyCastle实现 |
RipeMD320 | 320 | BouncyCastle实现 |
HmacRipeMD128 | 128 | BouncyCastle实现 |
HmacRipeMD160 | 160 | BouncyCastle实现 |
三、RipeMD系列算法举例(注意他们生成的摘要信息的长度)
四、总结
1、HmacRipeMD消息摘要的长度与相应的摘要算法的摘要长度相同:HmacRipeMD128与RipeMD128相对应,消息摘要长度都是32个字符的16进制串。HmacRipeMD160与RipeMD160相对应,消息摘要长度都是40个字符的16进制串。
2、BouncyCastle不仅仅提供了HmacRipeMD算法的实现,还提供了HmacTiger算法的实现。实现方式与上边的代码清单相似