但是这值得吗?如果每个文件都有一个哈希,那么每个文件基本上都有开销。假设每个文件必须占用至少512 个字节(一个典型的磁盘扇区),并且您将这些散列存储得足够紧凑,以免每个散列占用的空间超过散列大小。
所以,即使你所有的文件都是 512 字节,最小的,你说的要么16 / 512 = 3.1%
是32 / 512 = 6.3%
. 实际上,我敢打赌您的平均文件大小更高(除非您的所有文件都是 1 个扇区......),因此开销会更少。
现在,散列所需的空间量与您拥有的文件数量成线性关系。额外的空间值那么多吗?即使您有提到的万亿文件 - 那1 000 000 000 000 * 16 = ~29 TiB
是很大的空间,但请记住:您的数据将是1 000 000 000 000 * 512 = 465 TiB
. 3%
实际上,这些数字毫无价值,因为它仍然是6%
开销。但在这个级别,你有半 PB 的存储空间,15 TB 重要吗?在任何层面上,3%
储蓄是否意味着什么?请记住,如果它们更大,您可以节省更少。(它们可能是:祝你好运,以该硬盘大小获得 512 字节的扇区大小。)
那么,这种3%
或更少的磁盘节省是否值得潜在的安全风险。(我不会回答,因为这不是我的一杯茶。)
或者,您能否以某种合乎逻辑的方式将文件组合在一起,从而减少文件?(我的意思是,如果你有数万亿个 512 字节的文件,你真的想要散列磁盘上的每个字节吗?)