我想知道将一堆MD5哈希值散列在一起以创建新哈希是否“安全”,或者这是否会以任何方式增加冲突的概率。
背景:我有几个带依赖项的文件。每个文件都有一个关联的哈希值,该哈希值是根据它的内容计算的。我们称之为“单文件”哈希值。除此之外,该文件还应该有一个哈希值,其中包含所有相关文件,即“多文件”哈希值。
所以问题是:我可以只取相关文件的所有单文件MD5哈希值,连接它们,然后在连接值上计算MD5以获得多文件哈希值。或者,如果我将所有相关文件的内容连接在一起,这将导致更可能发生冲突的MD5哈希值。
或者,我可以将单文件哈希值合并在一起以生成多文件哈希值,或者这可能会导致更多冲突吗?
答案 0 :(得分:3)
听起来你需要Merkel Tree
答案 1 :(得分:1)
MD5存在很多碰撞问题,请参阅MD5 entry on Wikipedia。
但是,如果您使用MD5不是为了安全而是作为检查依赖关系的唯一标记,那么即使散列连续哈希也应该非常安全。
或者,如果还不晚,请切换到SHA-1。
答案 2 :(得分:1)
我认为,对于连接文件进行哈希处理,碰撞的风险大致相同,以及对连接文件哈希进行哈希处理。