Hash MD5是否为两个相同的二进制文件创建相同的哈希代码,即使添加第二个二进制文件的几行代码?

Hash MD5是否为两个相同的二进制文件创建相同的哈希代码,即使添加第二个二进制文件的几行代码?,hash,md5,Hash,Md5,我已经创建了一个小型的自动防病毒工具,它与MD5哈希代码一起工作。它接受二进制的哈希值,然后与数据库中现有的签名进行比较 假设恶意软件作者只是更改/添加了几行恶意软件代码,那么它将生成相同的散列键?还是不同的散列键?即使增强/更改代码,它也会生成相同的哈希键吗?校验和的全部要点是,一个小的更改应该会导致哈希的大的更改 也就是说,校验和冲突是生活中的一个事实,聪明的人可以非常小心地修改代码,这样校验和就保持不变。不过,我想说,一般来说,这是一种低风险的做法,因为这样做需要付出很大的努力。理想情况下

我已经创建了一个小型的自动防病毒工具,它与MD5哈希代码一起工作。它接受二进制的哈希值,然后与数据库中现有的签名进行比较


假设恶意软件作者只是更改/添加了几行恶意软件代码,那么它将生成相同的散列键?还是不同的散列键?即使增强/更改代码,它也会生成相同的哈希键吗?

校验和的全部要点是,一个小的更改应该会导致哈希的大的更改


也就是说,校验和冲突是生活中的一个事实,聪明的人可以非常小心地修改代码,这样校验和就保持不变。不过,我想说,一般来说,这是一种低风险的做法,因为这样做需要付出很大的努力。

理想情况下,源二进制文件中的任何更改都会生成不同的散列。然而,MD5算法并不具有抗冲突性。两个不同的二进制文件可能(尽管有点不太可能)生成相同的散列。

对于散列函数来说,这通常是正确的,但是MD5不再被认为是安全的,正如您可以阅读的那样

2005年3月,山东大学的王晓云和俞洪波 中国发表了一篇文章,他们在文章中描述了一种算法 可以找到具有相同MD5哈希的两个128字节的不同序列


对于ps文件来说,它也不安全。

我想知道你认为散列是什么。MD5散列对于这种用途来说是老新闻。“理论上,源二进制文件中的任何更改都应该生成不同的散列”,这是不正确的。任何哈希算法都有冲突。