MD5反向同一性:(X,Y)是否存在使得md5(X)= Y且md5(Y)= X

Fli*_*McF 16 hash md5

是否存在两个相互散列的128位值?

Find (X,Y) such that md5(X) = Y and md5(Y) = X
Run Code Online (Sandbox Code Playgroud)

他们可以在没有暴力的情况下被发现吗?

额外的功劳:我是否可以弥补"md5-itive反向同一性"一词?

如果不是空的,解决方案集将是稀疏的.

对于你今天的LOL,你在这里:

https://github.com/flipmcf/playground/tree/master/md5-inverse-search

有关:

MD5定点
MD5哈希碰撞

def*_*nes 3

这与 Kember 身份搜索不同。

考虑以下情况的差异:

md5(X) == X
Run Code Online (Sandbox Code Playgroud)

为此,X 必须是 128 位值。

这与以下内容不同:

bin2hex(md5('string')) == 'string' 
Run Code Online (Sandbox Code Playgroud)

这正是肯伯身份搜索真正要寻找的。如果您查看其网站上的任何搜索实现,您可以轻松地看到它们使用 32 字符字符串而不是 128 位数字作为 md5 函数的输入,因此不会查找 md5 (X) == X。

我也不是第一个指出这一点的人,您可能会发现克里斯·汤普森直接针对“肯伯身份”的这篇文章很有启发性。