1. if ( md5(a) == md5(b) )
2. then ( md5(a.z) == md5(b.z) )
3. but ( md5(z.a) != md5(z.b) )
在这里,点是用来连接字符串的。
编辑 ---
在这里你可以找到a
和b
:
http://www.mscs.dal.ca/~selinger/md5collision/
查看这些链接:
hexpaste.com/qzNCBRYb/1 - 这是 a.md5(a)."kutykurutty"
hexpaste.com/mSXMl13A/1 - 这是 b.md5(b)."kutykurutty"
它们共享相同的md5哈希值,但它们是不同的。但你可以称这些字符串为a'
和b'
,因为它们具有相同的md5。
--- 编辑
如果我们将第二行中的所有md5更改为sha1,会发生什么?所以:
1. if ( sha1(c) == sha1(d) )
2. then ( sha1(c.z) ?= sha1(d.z) )
我找不到两个具有相同sha1的不同字符串,这就是我提出这个问题的原因。还有其他有趣的关于sha1的“规则”吗?