缓存静态资源是通过使用哈希算法(sha1、sha256、md5...)来完成的,其结果附加到文件名中(用于缓存清除)。
Npm 模块默认使用不同的算法,如 gulp-hash (sha1)、object-hash (sha1)、webpack (md4)、grunt-hash (md5)...
在 Node.js Web 服务器上下文中,基于文件内容而不是随机性(其中将选择 randomBytes)来缓存资源,哪种算法具有最佳碰撞/速度比,可以接受生成缓存资源? 是 md5还不够吗?
对于缓存清除,冲突不太可能导致严重问题。当文件的新版本与前一个版本具有相同的哈希值时,就会发生冲突。这通常只是暂时的不便,当浏览器再次获取文件时,它会自行解决。
根据项目要求,什么是“可接受的”是非常主观的,但是任何加密安全的功能都可能是矫枉过正的(尽管除非您正在处理数千个文件,否则您在实践中可能不会注意到差异)
如果速度确实是一个问题,CRC32 可能是一个不错的选择。 MD5 也足够好了。