7

我想知道将一堆 MD5 哈希值散列在一起以创建一个新的散列是否“安全”,或者这是否会以任何方式增加冲突的可能性。

背景:我有几个具有依赖关系的文件。每个文件都有一个相关的哈希值,该哈希值是根据其内容计算得出的。我们称其为“单文件”哈希值。除此之外,文件还应该有一个包含所有依赖文件的哈希值,即“多文件”哈希值。

所以问题是:我是否可以只取依赖文件的所有单文件 MD5 哈希值,将它们连接起来,然后在连接后的值上计算 MD5 以获得多文件哈希值。或者这是否会导致 MD5 哈希比我将所有依赖文件的内容连接在一起更容易发生冲突。

或者,我是否可以将单文件哈希值异或在一起以生成多文件哈希值,或者这可能会导致更多冲突?

4

3 回答 3

3

听起来你需要一棵默克尔树

于 2011-09-18T14:13:09.957 回答
1

MD5 有很多碰撞问题,请参阅Wikipedia 上的 MD5 条目

但是,如果您使用 MD5 不是为了安全,而是作为检查依赖项的唯一标记,那么即使散列包含的散列也应该是非常安全的。

或者,如果还不算太晚,请切换到 SHA-1。

于 2011-09-18T12:50:04.957 回答
1

我认为散列连接文件的冲突风险与散列连接文件散列的风险大致相同。

于 2011-09-18T13:45:27.817 回答