【发布时间】:2023-12-01 10:20:01
【问题描述】:
众所周知
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 的有趣“规则”吗?
【问题讨论】: