我们有大量(10 多个)非常大的文件(> 1 GB),我们在我们的网络中共享这些文件。偶尔也会有一些较小的文件。
无论如何,我们希望确保这些文件在传输后是正确的。所以我想我可以创建一个工具来计算几个不同的哈希值(SHA1 和 MD5,也可能是 CRC32)并将其保存在元数据文件中。接收端的任何人都可以使用该工具验证文件。
我是否应该担心鉴于文件的大小,损坏的文件可能会与原始文件产生冲突?我不担心有人故意产生碰撞。
在这种情况下,也可以选择使用 bittorrent,因为它会计算小得多的块(几 KB 到几 MB)的 SHA1。另一个优点是它甚至可以处理数据传输。但这也带来了不便,因为同一个块可能属于不同的文件——在这种情况下,您需要文件的“邻居”来验证它。当然我可以添加虚拟填充,但现在我让事情变得复杂了。
我知道 2^80 甚至 2^64 都是相当大的数字,并且哈希被设计为具有“雪崩效应”,所以也许我只是有点偏执。