@
jasonding 你可以去搜索一个人名字:王小云 她就是破解了 MD5 和 SHA-1 的人,详细算法和数学原理你可以搜她的论文,我反正是没有研究过哈。
我上面也说了,如果瞎蒙的话确实碰撞的概率极低,但是如果有了她的算法理论做铺垫,由于你是有方向性的,基本就相当于 100%的碰撞概率了,只是计算时间比较长而已了(其实按照现在的计算机发展水平真的能很快算出来,国外的骇客都是租按时间付费的云计算来算 MD5 碰撞的,时间极短,感兴趣的话自己可以做做实验,网上应该有大把的源代码),也就是只要有碰撞算法在,理论上任何一个 MD5 密文都能计算出原文,而且在无穷大的时间可以计算出原文的个数也是无穷大(这两个无穷大都是数学概念上的无穷大)。
通常我们想破解一个 MD5 密码只需要计算出任意一个即可,但你题目中的用途与这个无关。
你题目中的用途是期望别人能够将你的 MD5 密文还原成你的邮箱地址,在这个 MD5 密文的无穷多个原文之中只有一个是你的邮箱地址,其中其他像是邮箱地址的原文理论上也是无穷多个,所以解密者还原出你的邮箱地址的概率极低,趋近于无穷小,当然加入一些社会工程学元素(比如你所处的社会环境等等)以及通用的邮箱命名规则(长度限制、字符限制、大小写敏感性等等)可以将这个邮箱地址的集合缩小到有限个数,理论最完备的情况下这个有限数量的邮箱地址列表中就有你的邮箱地址,这时候解密者只需要向这个列表中的所有邮箱地址群发邮件,总有一封邮件是发到你的邮箱地址的。
综上所述:以上分析都是纸上谈兵,如果你将你的邮箱地址压缩成了 MD5 密文,并且发布了出去,那么理论上是会收到解密者的邮件的,只是难度极高。