在检测文件是否已更改时,使用“文件上次修改时间”(例如NTFS)是否安全?如果没有,文件备份应用程序是否总是散列整个文件以检查更改?如果是,那么什么哈希算法适合这种检查?
答案 0 :(得分:3)
这取决于应用程序的要求。它可以容忍误报吗?假阴性?
文件上次修改日期不可靠。例如,FTP可以在不更改文件的情况下更改修改日期,或者文件可以一次性下载两次,更改修改日期而不更改文件。另一方面,有一些实用程序将更改文件但保持相同的文件上次修改日期。
如果文件在更改后绝对必须采取操作,可靠的方法是使用良好的哈希或指纹。这确实需要时间。在不花费太多时间的情况下提高赔率的一种方法是将修改日期与文件大小进行比较,但这并非万无一失。
答案 1 :(得分:2)
我不会非常信任上次修改时间,因为即使打开文件并添加单个字符也会改变修改时间。 Hashing存在碰撞问题,因此我建议阅读Rabin的指纹识别算法。
答案 2 :(得分:0)
我认为习惯于设置有效的和定期监视的哈希检查。我认为最后修改不如许多人想象的安全。坚持检查哈希并使用定期执行的良好软件。
相信我,一旦您习惯了不选择最简单的路线并且始终做得最安全,就会养成良好的习惯,这将带您进一步采取其他安全措施。