有没有可能出现一个不同的字符串MD5出来相同的md5值呢?

发布于 2022-09-02 00:57:07 字数 108 浏览 12 评论 0

想很多认证,支付宝接口,网银接口等,都是使用MD5计算密匙 sign来进行身份权限认证的,那有没有可能不同的字符串MD5出来的值相同呢?

换句话说,对于同一字符串,MD5是不是唯一的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

轻拂→两袖风尘 2022-09-09 00:57:08

趋近于不可能

踏雪无痕 2022-09-09 00:57:07

特意看了下百科:
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

所以同一字符串加密后的值肯定是相同的。
至于实现,有人在wikipedia上贴了段“伪代码”
https://zh.wikipedia.org/wiki/MD5

心头的小情儿 2022-09-09 00:57:07

你这个换句话说……换的两个概念都不一样了,一个是多个字符串是否对应一个MD5,一个是字符串是否对应多个MD5。

好吧,回到问题,确实,存在多个字符串对应一个MD5的情况,这种情况叫做哈希冲撞。毕竟MD5只是摘要,不论多长的字符串都能散列到一个固定的长度,原字符串的长度是不限的,如果不出现冲撞,那就不符合客观规律了。

那再看回来,既然为什么MD5会出现重复,为什么还会选择这个来进行密码的加密呢?
首先,一般的密码长度都会有长度的限制,而且基本都会小于MD5散列结果的长度,这就让MD5唯一有了条件。而MD摘要经过了几代的演进发展到MD5,其主要优化的,就是散列的分散性,这个分散性的体现,就是避免冲撞的发生。所有使用在密码加密上还是有可靠保障的。

习ぎ惯性依靠 2022-09-09 00:57:07

可以啊,王小云当年不是有过这么一篇任意构造md5的论文么,不过貌似后来被封杀了,现在网上流传程序都是让两个不同文件拥有相同md5,以前过360云查杀就是这么干的,把木马跟正常文件用程序处理一下,将正常文件发给360进行核对,然后嘿嘿

后来的我们 2022-09-09 00:57:07

不是可能, 碰撞是一定有的. 因为md5是无限集合到有限集合的映射.

属性 2022-09-09 00:57:07

应该会~

2022-09-09 00:57:07

ls正解

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文