是否存在两个128位的值,它们的哈希结果相同?
Find (X,Y) such that md5(X) = Y and md5(Y) = X
是否可以不使用暴力方法找到它们?
额外加分项: 我可以编造术语“md5-itive inverse identity”吗?
如果不为空,解集将是稀疏的。
今天为了让你乐一下:
https://github.com/flipmcf/playground/tree/master/md5-inverse-search
是否存在两个128位的值,它们的哈希结果相同?
Find (X,Y) such that md5(X) = Y and md5(Y) = X
是否可以不使用暴力方法找到它们?
额外加分项: 我可以编造术语“md5-itive inverse identity”吗?
如果不为空,解集将是稀疏的。
今天为了让你乐一下:
https://github.com/flipmcf/playground/tree/master/md5-inverse-search
d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89
55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70
d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89
55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b
d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0
e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70
这两个块之间有6个字节的差异(39、91、119、167、219和247字节),哈希值为79054025255fb1a26e4bc422aef54eb4
。我想这些块是通过某种智能的力量算法发现的†,虽然我不确定。
†:暴力破解考虑到md5的弱点进行分析。
我不是在讨论Kember身份搜索。
考虑以下情况的区别:
md5(X) == X
为了使这个成立,X 必须是一个 128 位的值。
这与以下内容不同:
bin2hex(md5('string')) == 'string'