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