Java加解密的艺术(3)----------消息摘要算法综述

什么是消息摘要算法

消息摘要算法又有一个通俗的名称——数字指纹。这样说的话其实可能大家还不是很清楚。
举一个好理解一点的例子大家都知道指纹可以唯一的确定一个人的身份,因为每个人的指纹是独一无二的。好了,我们在使用支付宝的时候我们会录入指纹,此时这个指纹就成了我们验证时的依据,当支付宝需要验证支付过程中支付者的身份的时候就只需要我们提供相应的指纹就可以了。这个时候我们的指纹就是我们对于支付宝而言的“消息摘要”,而他通过我们录入的指纹给我们生成的验证数据的过程就可以看作是“消息摘要算法”。

消息摘要算法的分类以及相关算法

消息摘要算法
  1. MD
    1. MD2
    2. MD4(Sun(JDK)和 Commons Castle 不支持 )
    3. MD5
    //每一个都较前一个的安全性有所提高,电驴用的就是改进的MD4
    
  2. SHA
    1.SHA-0
    	在公布后不久就被撤回,因为NSA发现它含有会降低密码安全性的错误
    
    2.SHA-1
    3.SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)
  3. MAC
相应实现方式的比较
算法Sun(JDK)Bouncy CastleCommons Codec
MDSun提供的算法较为基础,支持MD2和MD5两种算法,但是缺少了相应的进制转换实现,不能将其字节数组的摘要信息转为十六进制字符串BC是对Sun的友善补充,提供了对MD4的算法支持。支持多种形式的参数输入,支持十六进制字符串形式的摘要信息。如果仅仅需要实现MD5算法的话使用CC完成消息摘要是一个不错的选择。他支持多种形式的参数,支持十六进制形式的的摘要信息
SHASun提供了较为底层的SHA算法的实现,如SHA-1、SHA-256、SHA-385和SHA-512四种算法,但是缺少了相应的进制转换实现。BC是对Sun的友善补充,提供了对SHA-224d的支持,支持十六进制字符形式的摘要信息CC对Sun的算法做了包装,支持多种的参数、支持多种形式的摘要算法
MAC提供了基本的算法支持,如HmacMD5、HmacSHA1、HmacSHA256、HmacSHA384BC在在Sun的基础上添加了对HmacMD2、HmacMD4和HmacSHA224三种算法的实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值