百科问答小站 logo
百科问答小站 font logo



为什么说 MD5 是不可逆的? 第1页

  

user avatar   hereiswujie 网友的相关建议: 
      

MD5不可逆的原因是其是一种散列函数,使用的是hash算法,在计算过程中原文的部分信息是丢失了的,这点其它同学的答案中有说到
不过有个地方值得指出的是,一个MD5理论上的确是可能对应无数多个原文的,因为MD5是有限多个的而原文可以是无数多个。比如主流使用的MD5将任意长度的“字节串映射为一个128bit的大整数。也就是一共有2^128种可能,大概是3.4*10^38,这个数字是有限多个的,而但是世界上可以被用来加密的原文则会有无数的可能性。
不过需要注意的一点是,尽量这是一个理论上的有限对无限,不过问题是这个无限在现实生活中并不完全成立,因为一方面现实中原文的长度往往是有限的(以常用的密码为例,一般人都在20位以内),另一方面目前想要发现两段原文对应同一个MD5(专业的说这叫杂凑冲撞)值非常困难,因此某种意义上来说,在一定范围内想构建MD5值与原文的一一对应关系是完全有可能的。所以对于MD5目前最有效的攻击方式就是彩虹表_百度百科,具体详情你可以通过链接了解。
这一段为了方便大家理解,改个老梗作为栗子吧

【世界上只有一个我,但是但是妞却是非常非常多的,以一个有限的我对几乎是无限的妞,所以可能能搞定非常多(100+)的妞,这个理论上的确是通的,可是实际情况下....】

至于怎么样算是在计算过程中原文的部分信息丢失,同时还能起到校验验证的作用,我举个栗子
原文:
快点赞啊亲
加密规则:
每个字取拼音声调+笔画数,最后的结果计算乘积,为了也使得我的结果始终保持在一个限定范围内,取最后结果取其与2^14=16384的余数(随便取的,你们就当我有二进制强迫症吧)
如 快 是7画,4声,也就是“特征值11”,以此类推 点9+3=12 赞16+4=20 啊10+4=14 亲9+1=10
最后我发明的不可逆函数值就是
11*12*20*14*10=26400与16384的余数,也就是10016
如果单单给10016这个数字和加密算法,你是无论如何不可能推倒出原文是“快点赞啊亲”的,不过如果给你“快点赞啊亲”你却很容易验证答案是否正确。

嗯,就是这样。


user avatar   MengQiDLuFei 网友的相关建议: 
      

我以为是在MD5计算的过程中丢失了信息。一个MD5值可以对应多个原文。




  

相关话题

  如何评价新浪微博热搜榜被停更一周事件?你对微博热搜榜本身有哪些看法? 
  消息称 Keep、喜马拉雅均已于最近几周取消赴美首次公开募股(IPO)计划,背后原因可能有哪些? 
  如何评价北京邮电大学学生「老师好我叫何同学」发布的视频「5G 在日常生活中的真实体验」? 
  奥运会发展一百余年,背后有哪些科技变迁? 
  中国制造、中国建造、中国发展的中国速度是一种什么样的速度?都有什么样的成果? 
  如何看待 OPPO 副总裁沈义人披露的 OPPO 屏下摄像头技术?屏下摄像头算黑科技吗? 
  2020年了,大家想到智能家居还会觉得是智商税吗? 
  未来50到100年,什么常见的东西会消失? 
  理工男,我感觉 win10 挺好用的,一点不卡,为什么有那么多人买Macbook 呢? 
  如何看待米哈游逆熵科技AI生成的鹿鸣声音? 

前一个讨论
美国的选举人团能否不按照各州选举情况来投票给“指定的总统候选人”?
下一个讨论
C语言的设计模式有哪些?





© 2025-02-07 - tinynew.org. All Rights Reserved.
© 2025-02-07 - tinynew.org. 保留所有权利