【发布时间】:2013-10-29 15:08:19
【问题描述】:
假设 H 是某个散列函数(例如 MD5 或 SHA256 或其他什么),我对这个散列有冲突:两个不同的数据 x 和 y,它们具有相同的散列。
换句话说,x≠y,但 H(x)=H(y)。
现在如果我连接一些随机数据 z,H(x+z) 会和 H(y+z) 一样吗?
这个想法是:x 和 y 发生冲突可能意味着它们碰巧使 H 函数处于相同状态(从而导致相同的哈希)。从那时起,无论我们附加什么其他数据,它们的哈希值都将保持相等。
我为this MD5 collision 测试了上述内容,它似乎在那里工作。但不知道一般情况下是不是这样?
【问题讨论】:
-
短版:取决于散列函数。见[这个问题][1][1]:stackoverflow.com/questions/996495/…