基本上,我正在跟踪文件修改,例如:
array (
'crc-of-file' => 'latest-file-contents'
)
这是因为我同时在运行时处理不同文件的文件内容。
所以,问题是,我应该对文件内容使用什么散列算法(作为一个字符串,因为文件正在被加载)?
碰撞预防和性能一样至关重要。到目前为止,我没有看到任何安全隐患。
编辑:我可以用来代替散列内容的另一件事是文件修改时间戳,但我不确定它有多可靠。另一方面,我认为监视所述标记比每次散列文件更快。
CRC 它不是散列算法,是校验和算法,因此您发生冲突的机会将非常高。
md5
速度非常快,并且对于您的应用程序/体积而言,碰撞风险相当小。如果您正在缓冲文件,您可能还想查看使用扩展的增量哈希。hash
有点复杂,但也值得一看(如果你有的话)是Inotify
扩展名。