文件最近修改



在检测文件是否已更改时,使用文件最后修改(例如NTFS)是否安全?如果没有,文件备份应用程序是否总是散列整个文件以检查更改?如果是的话,哪种哈希算法适合这种检查?

这取决于应用程序的需求。它能容忍误报吗?假阴性?

文件最后修改日期不可靠。例如,FTP可以在不改变文件的情况下改变修改日期,或者一个文件可以被下载两次,一次超过它本身,改变修改日期而不改变文件。另一方面,有一些实用程序将更改文件,但保持相同的文件最后修改日期。

如果必须在文件被更改时对其采取操作,可靠的方法是使用好的散列或指纹。这确实需要时间。在不花费太多时间的情况下提高概率的一种方法是将修改日期与文件大小进行比较,但这也不是万无一失的。

我不太相信上次修改时间,因为即使打开一个文件并添加一个字符也会改变它的修改时间。散列有碰撞的问题,所以我建议阅读Rabin的指纹算法。

我认为应该习惯设置有效的和常规监控的哈希检查。我认为最后的修改并没有很多人想象的那么安全。坚持检查散列,并使用定期检查的好软件。

相信我,一旦你习惯了不选择最简单的路线,总是选择最安全的路线,你就会养成很好的习惯,这些习惯会让你采取其他安全措施。

最新更新