消息摘要算法

本文介绍了消息摘要算法在数据完整性验证中的作用,如MD2、MD4、MD5和SHA家族的安全散列算法。MD和SHA常用于密码存储,而MAC(MessageAuthenticationCode)结合了密钥,提供更高安全性的验证。SHA-1和MD5已被破解,现今更倾向于使用SHA-2系列。MAC如HMAC在安全通信中广泛应用。
摘要由CSDN通过智能技术生成

概述

在这里插入图片描述
看图,我们在下载commons-codec时候会有这么一个页面,我们点md5会有一个值,这个值是做什么呢?为什么会有这么一个值呢?这就是消息摘要算法的作用,验证数据的完整性。
消息摘要算法是数字签名的核心算法

MD(Message Digest)

在MD算法家族有MD2、MD4、MD5,从名称上看就可以看出它们的出现先后顺序,安全性也是一代比一代更强。我们过去使用的电驴用的是MD4算法,并且是对MD4算法做了改进,通过改进后主要用于对于要下载的文件做分块,都下载后再验证完整性。

算法摘要长度实现方
MD2128jdk
MD4128Bouncy Castle
MD5128jdk

demo:todo

应用
在这里插入图片描述
注册的方式:
1.用户注册,把用户名、密码发送到服务器
2.对密码进行消息摘要处理
3.把摘要保存到数据库密码列

登陆的方式:
1.用户登陆,把用户名、密码输入
2.应用服务器对密码做摘要处理
3.通过用户名查询密码摘要
4.返回登陆结果

这样就可以把密码保护起来,通过数据库也看不到密码。几年前csdn的数据库被一些人搞到了,这时大家发现csdn的数据库对密码使用明文存储的,这样就造成了泄露大量的用户信息。csdn官方也及时做出了应对处理,让大家及时改密码。这事如果是发生在证券交易所、银行、基金这些网站上,那这个时候损失的就不仅仅是一些积分,这时候就是钱的事了。

SHA(Secure Hash Algorithm)

安全散列算法的简称,和MD一样都是固定长度摘要信息。SHA在很多场景被认为是MD的继承者,还有美国的官方背景,是美国的国家安全局设立,被美国的国家标准技术院发布的一些列散列函数,为什么说是一些列呢?因为SHA包含了SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512) 五种,但是人们通常喜欢把SHA-1外的统称为SHA-2。
是在MD4基础上演变出来的,和MD不同的是如果输入的消息对应的消息摘要的结果是差别是很大,这就没法判断一些很相近的东西,破解很难。不过,神农大学的王小云已经把MD5、SHA-1算法给破解了。

算法摘要长度实现方
SHA-1160JDK
SHA-224224Bouncy Castle
SHA-256256jdk
SHA-384384jdk
SHA-512512jdk

Demo: todo

应用:
在这里插入图片描述
浏览器的证书就是一个实际应用的例子。
在这里插入图片描述

  1. 发送方公布消息摘要算法
  2. 发送方对待发送的消息做摘要处理
  3. 发送摘要消息
  4. 发送消息
  5. 接收方对消息做摘要,和收到的摘要做对比,鉴别消息

MAC(Message Authentication Code)

兼容了MD、SHA的特性,并且加入了秘钥,因此又叫HMAC (keyed-Hash Message Authentication Code),是含有秘钥的散列函数算法。分为两大系列,

  • MD系列:HmacMD2、HmacMD4、HMacMD5
  • SHA系列:HmacSHA-1、HmacSHA-224、HmacSHA-256、HmacSHA-384、HmacSHA-512

应用如SecureCRT

算法摘要长度实现方
HmacMD2128Bouncy Castle
HmacMD4128Bouncy Castle
HmacMD5128jdk
HmacSHA-1160JDK
HmacSHA-224224Bouncy Castle
HmacSHA-256256jdk
HmacSHA-384384jdk
HmacSHA-512512jdk

demo :todo

在这里插入图片描述
1.发送方公布消息摘要算法
2.构建秘钥
3.发送秘钥给接收方
4.对消息做摘要
5.发送消息摘要
6.发送消息
7.消息鉴别

其它

  • RipeMD
  • Tiger
  • Whirlpool
  • GOST3411

这几种只能使用Bouncy Castle

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值