使用Java实现信息摘要算法

本文介绍了三种常见的加密算法:MD(消息摘要)、SHA(安全散列)和HMAC(散列消息认证码)。详细讲解了各算法的特点及应用场景,如MD5、SHA-1和HMAC的多个变种。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 介绍

在实际开发中,我们会经常用到一些不可逆的加密算法,例如:MD5算法、SHA1算法、信息摘要算法,还有哈希算法等等。如果没有好好学习一些,真得会搞混的。所以我查找了相关资料,在这里简单介绍一下。

消息摘要算法分为三类:

  • MD(Message Digest):消息摘要
  • SHA(Secure Hash Algorithm):安全散列
  • HMAC(Hash-based Message Authentication Code):散列消息认证码

这三类算法的主要作用:数据加密和验证数据的完整性。

这里提供一个在线工具:http://tool.oschina.net/encrypt?type=2

2. MD

生成的消息摘要都是128位的,包括:MD2、MD4、MD5。从安全性上来说,MD5 > MD4 > MD2。

3. SHA

安全散列算法(英语:Secure Hash Algorithm,缩写为SHA,也有称为哈希算法)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。包括:SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)。

4. HMAC

密钥散列消息认证码(英语:Keyed-hash message authentication code),又称散列消息认证码(Hash-based message authentication code,缩写为HMAC),是一种通过特别计算方式之后产生的消息认证码(MAC),使用密码散列函数,同时结合一个加密密钥。包括:HmacMD2、HmacMD4、HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512。

5. 总结

这里只是简单介绍一下这三类算法的基本内容,对于算法的具体实现没有涉及到,如果想了解具体实现的朋友,那只能另外找资料了。我自己封装了一个工具类,感兴趣的可以到我的GitHub上面看看 CryptoHelper,具体使用方式请看这个BlogDemo

这里提供一个在线工具:http://tool.oschina.net/encrypt?type=2,方便大家验证。不过这里说明一下,不知道什么原因,我封装的工具类中的HmacSHA224和HmacSHA384这两个算法的加密结果跟这个在线工具不一样。我初步估计可能是JDK的内部实现问题。

 

如果想进一步交流和学习的同学,可以加一下QQ群哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值