1

我正在设计一个文件服务器应用程序,我想检查客户端计算机上的缓存文件是否是保存在服务器上的最后一个版本。

我不太相信文件系统中的“更改日期”属性,所以我想比较文件中的实际字节。

我认为最快的方法(因为通过网络发送所有字节需要一些时间)是将文件长度和哈希字节发送到服务器。然后服务器首先检查文件长度,如果它们匹配,它计算位于服务器上的文件的哈希值,然后检查它是否与客户端计算的相同。

谁能告诉我当文件大小相同时哈希冲突的可能性有多大?(我目前正在使用 MD5 来提高速度)。

我可以假设文件大小是否相同并且哈希是否相同内容是否相同?

谢谢!

4

1 回答 1

1

MD5 中的随机碰撞是如此不可能,以至于几乎可以肯定忽略这种可能性是安全的。

然而,MD5 已被证明在密码学上很弱,因此恶意对手可能会故意创建冲突的文件。一个著名的例子是:

2008 年 12 月 30 日,一组研究人员在第 25 届混沌通信大会上宣布他们如何使用 MD5 冲突来创建一个中间证书颁发机构证书,该证书通过其 MD5 哈希检查时似乎是合法的。

来源

于 2010-12-09T20:40:14.530 回答