MD5加密算法,倒底是否可逆

andy0618 2009-06-19 07:22:24
MD5加密算法,倒底是否可逆

前几年都说不可逆的,目前可逆了吗

因为要用到MD5,所以问一下,谁知道
...全文
6440 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptpig 2012-07-14
  • 打赏
  • 举报
回复
为什么我用MD5加密,网上可以在线破呢?
三少爷的拳 2012-03-05
  • 打赏
  • 举报
回复
不可逆...密码加密后生成的加密密码是固定的,所以可以用字典查找的方式给比对出来(当然只是包含一些简单的)...复杂的你肯定查不出来...可以试验一下
olkiuj 2011-03-03
  • 打赏
  • 举报
回复
md5不可逆
蓝海 2011-01-04
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 tabbycat 的回复:]
你拿程序穷举生成6位英文字符或数字组合的MD5 Hash值,然后插入数据库里,再用搜索数据库的办法,可以暴力破解好多的MD5密码
[/Quote]

MD5 是有 4 个密钥的,你这种说法可能是在大家正好都用同样的密钥时,才产生这样的情况;

比如 字符串 AA 通过与 4 个密钥 A、B、C、D 进行 MD5 后生成结果 BB;
这时你在数据库里用 4 个密钥 A、B、C、D 穷举出很多个结果序列,而且正好在这个结果序列中你
找到了 BB,所以你也就得到了 AA 或者是 AA 那个碰撞数;

其实,我在现实中已经发现很多人在下载 MD5 源码后,没有修改真接就用了,哥们儿们哪,
最起码你得改一下这 4 个密钥值吧???
所以才会产生你这样的问题!

否则,像上面的问题,如果我换一个密钥 E、F、G、H 呢,你即便用 A、B、C、D 找出了 BB,那么你的
BB 所对应的是 AA,而这时我的 BB 因为密钥是 E、F、G、H,所以它所对应的就不是 AA 了!
  • 打赏
  • 举报
回复
当我第一次使用md5来对文档签名的时候,我就把自己的名字放到被签名的文档前面然后才计算md5。呵呵,这样才有意义嘛!这样的规定才能让我的程序的增值开发程序都符合统一的标准。

我们从网上下载别人的两个Exe,他们的md5相同,这有什么意思呢?任何软件产品都类似,使用md5的人看到那种宣传很成功的东西就知道它是什么样的攻击力,反而会更多信心知道自己的东西多么踏实。
aimeast 2009-06-20
  • 打赏
  • 举报
回复
只要你不是拿MD5用在值上百万价值的东西上,稍微做点变换就可以认为是安全的。

sp1234在21-23楼已经说的很清楚了。

所谓的md5被破解,你也不用有任何的担心。如果这个东西真的不安全了,为什么还在大量的使用?
安全都是相对的,别人是不会花大力气去破解你那些不是很值钱的东西的。

另外,楼上有人说多次md5,其实这样的做法是没有什么实际意义的。还不如用sp1234的方法。
wolf1118baby 2009-06-20
  • 打赏
  • 举报
回复
不可逆
  • 打赏
  • 举报
回复
对于我把上述4项组合起来然后计算md5,就算在用户输入登录密码时我不去限制密码的长度和允许的字符,你能找到正好碰撞出来的密码来得到跟原来密码计算所得到的md5结果相同的可能性有多大?
  • 打赏
  • 举报
回复
我们上网时经常看到网站要检测用户的密码的强度,对强度很低的密码给出警告。因为对于强度很低的密码很容易就穷举,这跟md5没有半点联系,请不要随意联系。

再拿我的的一份合同使用md5签名为例。md5从来也没有忽悠说找不到碰撞,而是说很难找到。那么好,假设你能够在10年内找出另外一堆文字其md5恰好和我的合同书的md5签名相同,那么我能够读懂你的文字吗?我对我的合同书稍加约束,例如要求字数不大于5000个字,或者前面100个字中必须出现sp1234这样的字符,你的碰撞还有效吗?

对于通常很简短的只有几个字符的文字,如果要计算md5,我的做法是你要把它变成一定长度(例如大于100个字符)的字符串,然后计算md5。例如我们可以把用户注册名、密码、电子邮件地址、所使用的产品的厂商名四项连接起来,如果字符串长度小于100个字符我还可以把它跟自己重复连接一次。

  • 打赏
  • 举报
回复
让我们使用对密码进行md5计算来说,只有愚蠢的人才会对普通的用户的密码直接使用md5计算。因为当用户的密码很短很简单时,暴力破解也就是列举几十万中可能的密码就能做到所谓的“破解”。

但是这跟md5有一点关系吗?这能说明md5被“破解”了吗?这根本就是在穷举用户密码明文,而不是对md5结果做所谓的破解。

柳晛 2009-06-20
  • 打赏
  • 举报
回复
1、MD5是不可逆的。
2、快速碰撞有多快?我N年前就看过王小云教授的理论介绍,感觉碰撞也不是很高效的事情。
yuliangok520 2009-06-20
  • 打赏
  • 举报
回复
有些说是MD5加密可逆,其实是模仿了他的形式,真正的MD5加密是不可逆,但是有些简单的网上可以查询出来。
ChrisAK 2009-06-20
  • 打赏
  • 举报
回复
LZ翻了个错误.
md5不是加密算法而是散列算法,
它得到的是一个类似数字签名的东东.

而且md5现在已有可行的碰撞算法(原浙大王小云搞出来的).
即已知a的散列h,即h=md5(a);可求得
b = f(h);其中b不一定等于a而md5(b)=md5(a)
感兴趣的可以去google "快速MD5碰撞",现在已经有可用的
碰撞程序可以用了.
luckhut 2009-06-20
  • 打赏
  • 举报
回复
我认为你可以做多次md5加密,效果必然很好
mxc1225 2009-06-20
  • 打赏
  • 举报
回复
可逆的!!
bao520min 2009-06-20
  • 打赏
  • 举报
回复
编程爱好者请加群88718955,大家一起探讨,学习
芽疼 2009-06-20
  • 打赏
  • 举报
回复
MD5不可逆啊。我问过我们经理。
冷月孤峰 2009-06-20
  • 打赏
  • 举报
回复
虽说不可逆,但是还是可以碰撞的,SP123兄说的好,穷举出来的不应说成是MD5破解!
优途科技 2009-06-20
  • 打赏
  • 举报
回复
up
typeof 2009-06-20
  • 打赏
  • 举报
回复
加载更多回复(25)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧