星空网 > 软件开发 > Java

第三章 消息摘要算法

注意:本节内容主要参考自《Java加密与解密的艺术(第2版)》第6章“验证数据完整性--消息摘要算法”

3.1、消息摘要算法:防止消息在传递过程中被篡改。

原理:任何消息经过消息摘要算法后,都会产生唯一的散列值(即“数据指纹”)(同一段消息无论经过多少次相同的消息摘要算法加密,结果都相同),所以如果消息在传送过程中被修改,那么算出来的数据指纹也与原本的消息算出来的不同了,如果没有被修改,则数据指纹是相同的。

特点:单向性(即只有加密,没有解密)

3.2、MD5(算法已被破解,应用于安全程度要求不高的情况下)

实现方式:

  • Commons Codec(“CC”,最推荐,因为封装了JDK的底层代码,并且提供了二进制字节数组向十六进制转化的方法)
  • JDK(没有提供二进制字节数组向十六进制转化的方法,想要进行转化,需要借助BC)
  • Bouncy Castle(“BC”,不推荐,实现比较复杂)

下边只列出基于CC的工具类代码,至于基于JDK的代码可以参考“《Java加密与解密的艺术(第2版)》”,基于BC的代码可参考“慕课网”

3.2.1、基于CC实现的MD5加密算法

第三章 消息摘要算法

jar包的引入以及代码的测试自己参考第二章的第一个例子进行即可,在测试的过程中,自己去试着看看“同一个消息多次进行MD5加密后结果是不是相同”;

在encode()方法的测试中判断两个byte[]是否相等:按索引依次比较两个字节数组中的元素是否相同即可(如果使用main方法去测的话);如果使用Junit,直接使用assertArrayEquals(array1,array2)即可。

 




原标题:第三章 消息摘要算法

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

8类危险品腐蚀性危险品出口海运物流要求:https://www.goluckyvip.com/news/8457.html
国际快递如何寄药品:https://www.goluckyvip.com/news/8458.html
国际物流流程:https://www.goluckyvip.com/news/8459.html
1688的跨境专供业务和速卖通、Lazada,以及支付宝国际也是密不可分的:https://www.goluckyvip.com/news/846.html
我是做国际物流的怎么找客户:https://www.goluckyvip.com/news/8460.html
刚做物流怎么样找客户:https://www.goluckyvip.com/news/8461.html
响沙湾门票套票价格大介绍(省钱攻略必备):https://www.vstour.cn/a/404238.html
上海到镇江茅山旅游攻略 上海到镇江茅山旅游攻略路线:https://www.vstour.cn/a/404239.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流