区块链学习(03)MD5加密算法

MD5简介

MD5 ,即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3MD4

MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

2、容易计算:从原数据计算出MD5值很容易。

3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1RIPEMD以及Haval等。



代码示例

首先创建一个springboot项目,加上一个web组件,内容如下:


然后创建一个md5工具类Md5Utils,JDK就自带了md5加密算法,直接调用很方便:


可以看到方法很简单,只是调用了jdk的方法,不用自己再实现,不过默认返回的是字节数组,最后我们调用了一个字节数组转字符串的方法返回加密后的字符串。注意最后字符串字母都改为大写。

加密算法的底层对于使用者来说,可以不用详细研究,只需要知道调用的方式和得到的结果即可。并且md5算法是不可逆的,通过结果无法得知原来的字符串,所以常常用来作为数字签名或者摘要,将得到的字符串加密后与存储好的加密结果进行对比来验证正确性。比如用户名密码登录时,密码字段保存的就可以是md5后的内容,登录时只需要将密码md5加密,然后与保存内容对比即可。



测试

下面进行测试,写一个测试类,来测试字符串“md5”加密后的结果,如下:

直接运行testMd5方法,可以看到结果如下:

通过与网上在线md5加密工具结果对比,可以验证其正确性:

可以看到结果与32位大写结果一致。以上就是md5的介绍和代码的简单实现。


项目代码:https://gitee.com/blueses/btc-demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2562018.03.05 新年不忘读书 .胡桂芳论语《里仁篇》《公冶长》各1遍,《大学》1遍,诗经《1-10》2...
    古木草阅读 223评论 0 0
  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 1,319评论 0 0
  • 坚持打卡第四天,今天尝试着第一次站桩,只站了10分钟,腿就开始疼了,确实像医生说的那样想站好桩也不容易。今天依然快...
    灵宝0203许佩佩阅读 126评论 0 0
  • 又模仿了一幅画,比上次的缠绕画相对简单了一点。这个月亮没画好,有点跑偏。
    蔡海山阅读 696评论 1 49
  • 老婆,我就在你的身后,半米远的位置,不远也不近,默默的看着你,用你的喜怒哀乐描绘着我生活的色彩。 老婆,我...
    哈帝阅读 270评论 0 0