一个文件的内容怎么能引用它自己的MD5呢?

信息安全 哈希 md5
2021-08-24 07:05:23

所以我刚刚在Imgur上看到了这张图:http: //imgur.com/gxRCrCM

有趣的是,这张照片指的是一首名为“Face 2 Face”的古老的愚蠢朋克​​歌曲。令人惊讶的是,图像的 MD56b0cc07a5c4d3d8fface2face79d8205包含其中的短语face2face

如何生成这种类型的哈希?我一直认为,即使消息的一个字节被修改,也会得到完全不同的哈希值。

执行这个技巧需要什么样的计算能力?当然,我假设这不仅仅是巧合。

另外我很想知道是否还有其他此类哈希的示例,以及有哪些可用于 Linux 或 Windows 的工具?

2个回答

'face2face' 只有 9 个字符,即 36 位,因为我们使用的是十六进制编码。生成许多​​带有一些内部变化(不影响图形输出的细微变化)的图片并将它们全部散列直到获得目标字符串就足够了。由于我们正在寻找 36 位模式并接受该模式出现在 32 字符输出中的任何位置(24 个可能的位置),因此要生成和散列的平均图片数量约为 2 36 /24,即约 2.8十亿。由于一台基本的台式 PC 每秒可以计算几(许多)百万个 MD5 哈希值,因此使用一些经过适当优化的代码应该可以在不到一个小时的时间内完成。

这与 MD5 在碰撞方面的已知弱点无关。SHA-1 或 SHA-256 也可以这样做。

这已经在这个问题中讨论过了。

一切都非常简单。这个名字是在计算哈希之后为这首歌创造的。他们可能想不出一首歌的名字,有人不小心测量了哈希并注意到有一个不寻常的序列,因此,这个名字被发明了!=)