我正在构建一个系统,该系统需要能够找到字节块是否已更新。我认为我应该计算它的校验和,然后存储它并稍后计算相同的校验和,以查看 blob 是否已更新,而不是存储整个 blob(它们最多可达 5MB)。
目标是最小化以下内容(按此顺序):
- 校验和的大小
- 计算时间
- 冲突的可能性(即使内容已被修改,也会发生 2 个相同的校验和)。
我们的系统可以接受不超过 1/1,000,000 的碰撞。关心的不是安全性,而是简单的更新/错误检测,所以很少发生冲突是可以的。(这就是为什么我把它放在最后的原因)。
此外,我们不能自己修改文本块。
当然md5
,crc
或者sha1
想到,如果我想要一个快速的解决方案,我会去的。但是,不仅仅是一个快速的解决方案,我还在寻找可以比较不同方法以及利弊的内容。