← 返回首页

一个MD5笑话的进度条

发布时间: 2026-04-26 21:28(北京时间)

摘要: 作者通过一个虚构的MD5碰撞生成器笑话,以自嘲和夸张的方式描述控制哈希值的过程:每个bit对应两个字符串开关,理论上128个开关可生成任意MD5原相,但实际只完成了前4位,进度条3.125%,剩余工作量需要天文数字的时间。语气幽默,带有技术调侃。

标签: MD5碰撞, 哈希算法, 原相生成, 幽默, 自嘲, 夸张, 技术调侃

字数: 466

原文链接: /7402396589/QCD1Z9qeI

权当是当笑话看了,让我想下要怎么讲这个笑话。

我们都知道MD5的结果是128位的,那么我们可以假设一个文件有128个格子,每个格子里都可以填入一系列的字符串。

现在我给出一些开关,比如这个叫做“bit 0”的开关如果拨到T,文件就会在第一个格子填入“b”,如果拨到F,则填入“a”。这时候如果把这个文件进行MD5哈希,会发现输出的最高位是0还是1会和开关的状态有关。虽然后面看着还是乱糟糟的,但起码最高位可以控制了。

接下来我们操作“bit 1”的开关,T的话是“d”,F的话是“ao”。拨好后进行MD5哈希,我们发现次高位也可以控制了,而且最高位也不会受到影响。

这样的开关做起来不容易,暂时也就只做了4位。

但你们想一下,等我把这128个开关都做出来后,虽然我只拥有256个字符串,却可以生成任意MD5值的原相。你发给我宇宙中任意一个文件,我都能马上给出一个和你MD5碰撞的文件。

大家也不用着急,我已经搞定了前4位的开关,进度条已经跑了到3.125%,而剩下的工作量还需要72亿个138亿年就能完成。

image