为什么说MD5是不可逆的?
1个回答
展开全部
首先科普一下md5在网络安全中的作用,md5的算法原理和为什么不可逆,在回答后半部分
md5主要用于两个场景:
这里并不是为了数据加密,只是用来证明,数据传输中没经过中间人的恶意篡改,放心读取就好。
ipsec vpn中,可以选择使用md5进行完整性验证。
为什么要完整性验证?
老王在兰州拉面馆吃饭,点了一碗拉面,给小二说:多点牛肉,少点葱,辣椒不多不少,汤多一点,盐少一点,面不要太粗不要太细。小二说,还有吗?老王说,没了!小二吆喝了一声,一碗拉面!然后走了,上了一碗普通的拉面。
从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房,但是中间损失了很多关键信息,不是老王本来的原话。
第二天老王又来这家面馆,讲完同样的需求后,这次,小二上了一碗 牛肉粉。
从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房。但是消息在中间被篡改了,添加了一些原本发件人并没有表达的消息。
所以老王这个时候就需要 MD5算法 来避免 信息被篡改 ,来保证得到他想要的 牛肉面 。
用了MD5,厨师就会验证,小二传来的话,是不是老王发出的原话。
获得更多技术资料和免费学习视频,加入讨论群:662736393
技术交流,可添加 企鹅 :167748928
在数通项目中,为了安全,经常需要两台互相对接的设备进行身份验证。
比如ospf的邻居路由器之间,vrrp的主备设备之间,需要通过密码来互相验证身份。
但是直接传递密码,密码被中间人截获,这样就不好了。
所以先将密码进行哈希,而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主要用于两个场景:
这里并不是为了数据加密,只是用来证明,数据传输中没经过中间人的恶意篡改,放心读取就好。
ipsec vpn中,可以选择使用md5进行完整性验证。
为什么要完整性验证?
老王在兰州拉面馆吃饭,点了一碗拉面,给小二说:多点牛肉,少点葱,辣椒不多不少,汤多一点,盐少一点,面不要太粗不要太细。小二说,还有吗?老王说,没了!小二吆喝了一声,一碗拉面!然后走了,上了一碗普通的拉面。
从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房,但是中间损失了很多关键信息,不是老王本来的原话。
第二天老王又来这家面馆,讲完同样的需求后,这次,小二上了一碗 牛肉粉。
从这个故事里我们看出:数据从老王发出后,经过店小二传达到厨房。但是消息在中间被篡改了,添加了一些原本发件人并没有表达的消息。
所以老王这个时候就需要 MD5算法 来避免 信息被篡改 ,来保证得到他想要的 牛肉面 。
用了MD5,厨师就会验证,小二传来的话,是不是老王发出的原话。
获得更多技术资料和免费学习视频,加入讨论群:662736393
技术交流,可添加 企鹅 :167748928
在数通项目中,为了安全,经常需要两台互相对接的设备进行身份验证。
比如ospf的邻居路由器之间,vrrp的主备设备之间,需要通过密码来互相验证身份。
但是直接传递密码,密码被中间人截获,这样就不好了。
所以先将密码进行哈希,而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算法来进行文件完整性的校验成为了一种可信赖的方案。
更多网络技术公开课,腾讯课堂搜“ 众元教育 ”,戳 免费公开课 ,可直接听课哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
富港检测技术(东莞)有限公司_
2024-05-27 广告
2024-05-27 广告
ISTA3E程序是对相同产品的集合包装的综合模拟性能测试,集合包装件被定义为将一个产品、多个产品或包装件放置在滑板或托盘上,固定在一起或是作为一个单元运输。例如:一台机器由带瓦楞底托的托盘上、瓦楞侧围、顶盖包装,用缠绕膜缠绕在托盘上。用于评...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询