美文网首页网络工程师
为什么说MD5是不可逆的?

为什么说MD5是不可逆的?

作者: 小云晓云 | 来源:发表于2020-09-01 15:55 被阅读0次

首先科普一下md5在网络安全中的作用,md5的算法原理和为什么不可逆,在回答后半部分

md5主要用于两个场景:

场景一:在数据传输中,保证数据的完整性,以及数据不被篡改

这里并不是为了数据加密,只是用来证明,数据传输中没经过中间人的恶意篡改,放心读取就好。

ipsec vpn中,可以选择使用md5进行完整性验证。

ipsec vpn相关技术

为什么要完整性验证?

老王在兰州拉面馆吃饭,点了一碗拉面,给小二说:多点牛肉,少点葱,辣椒不多不少,汤多一点,盐少一点,面不要太粗不要太细。小二说,还有吗?老王说,没了!小二吆喝了一声,一碗拉面!然后走了,上了一碗普通的拉面。

从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房,但是中间损失了很多关键信息,不是老王本来的原话。

第二天老王又来这家面馆,讲完同样的需求后,这次,小二上了一碗牛肉粉。

从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房。但是消息在中间被篡改了,添加了一些原本发件人并没有表达的消息。

所以老王这个时候就需要MD5算法来避免信息被篡改,来保证得到他想要的牛肉面

用了MD5,厨师就会验证,小二传来的话,是不是老王发出的原话。

获得更多技术资料和免费学习视频,加入讨论群:662736393

技术交流,可添加企鹅:167748928

场景二、用来进行密码的加密

在数通项目中,为了安全,经常需要两台互相对接的设备进行身份验证。

比如ospf的邻居路由器之间,vrrp的主备设备之间,需要通过密码来互相验证身份。

但是直接传递密码,密码被中间人截获,这样就不好了。

所以先将密码进行哈希,而md5是一种哈希算法,这样密码就变成了一个随机数,中间人截获报文并不能得到真正的密码。

md5算法原先设计是不可逆的,但因为技术的发展,也可以通过一些方法还原到真实的密码,所以严格意义来讲,选择更好的哈希算法,才能保证更高的安全性。

MD5算法原理

MD5算法是实现数据完整性验证的方法之一,来保证数据的完整性,保证数据在传输中既不丢失,也不会经过篡改。

MD5是一种被广泛使用的密码散列函数。

不少人说很多MD5不够安全,不该广泛应用,这种看法是对的。

但是当前来说,数通项目上确实md5还在广泛应用,而且很多老款软硬件也只支持md5,等级保护也暂时没有废除md5的使用,所以虽说有安全漏洞,但当前很多地方还没有更新哈希算法。

md5的原理是这样:

它以512位分组来处理输入的数据信息,且每一分组又被划分为16个32位子分组,经过了一系列算法的处理后,算法的输出由四个32位分组组成,将这四个32位的分组级联后,就可以产生出128位的固定长度散列值,在得到这个MD5值后,如果想在逆向反推输入的数据就基本不可能了。

看个例子:

两个数字A(343879029802)和B(92387843709)

我们就简单的用A乘以B,一定会得到一个固定的结果C。

但是如果只是给你一个结果C,你知道C是由那几个因式计算出来的结果吗?

我相信你也猜不出来。所以, 只能从一个方向推导结果,不能从结果反过来逆向推导,就叫单向函数不可逆, 即Md5算法不可逆。

更不用说,通过MD5的复杂算法来进行计算以后得到的固定长度值了。

这里的A和B的数字我是随便编的,这个C结果我也没算过,大家暂且忽略,理解原理即可。

MD5可以为任何文件产生一个独一无二的“数字指纹”,如果有任何人对文件进行了改动,那么“数字指纹”(MD5值)也会发生变化。

就比如说刚才两个数字A(343879029802)和B(92387843709),如果把其中任何一个数字修改,得到的结果C也是千差万别,所以利用MD5算法来进行文件完整性的校验成为了一种可信赖的方案。


如果看到了这里,记得关注我@小云晓云,顺手点个赞就更好啦~

更多网络技术公开课,腾讯课堂搜“众元教育”,戳免费公开课,可直接听课哦!

相关文章

  • 加密基础知识一 MD5 SHA-1 CRC 加盐

    一、MD5是什么 参考聊一聊MD5MD5算法原理为什么说 MD5 是不可逆的? message-digest al...

  • 为什么说MD5是不可逆的?

    首先科普一下md5在网络安全中的作用,md5的算法原理和为什么不可逆,在回答后半部分 md5主要用于两个场景: 场...

  • 最详细的MD5签名的原理和流程

    必须知道MD5是不可逆性 在讲解MD5签名原理之前,必须明白MD5是不可逆的,也就是不可破解的,当然可能稍有了解的...

  • iOS开发之系统MD5加密

    常见的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。MD5生成的...

  • iOS中DES与MD5加密方案

    MD5算法和DES算法是常见的两种加密算法。 MD5: MD5是一种不可逆的加密算法,按我的理解,所谓不可逆,就是...

  • 算法

    MD5 MD5:首先,md5不是加密。md5是摘要算法,主要是用来做认证,利用自身优势(不可逆、低碰撞率)解决公开...

  • iOS加密

    iOS代码常见的加密方式包括MD5加密、AES加密、BASE64加密,RSA加密。 MD5加密 MD5是不可逆的只...

  • hashlib,logging模块

    hashlib hashlib是提供摘要算法的模块,包括MD5,SHA等算法。md5加密算法是单方向的,不可逆。 ...

  • 在实践中学习java(4)--MD5加密和AES加密

    MD5加密是不可逆的,即无法解密。 通常生成MD5加密使用的方法是: String base = "123" St...

  • 文本的md5及AES加密(Android环境)

    1.先来md5。 这样就可以在不记录原始字符串的情况下做校验了。只要记录md5码就行了。而md5又是不可逆的,保护...

网友评论

    本文标题:为什么说MD5是不可逆的?

    本文链接:https://www.haomeiwen.com/subject/hlpvsktx.html