是否存在两个相互散列的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
这与 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。
我也不是第一个指出这一点的人,您可能会发现克里斯·汤普森直接针对“肯伯身份”的这篇文章很有启发性。