CRC-32(c)还可以用于大文件吗? (最多100 MB)

时间:2011-05-10 13:35:05

标签: checksum

我想保留一组文件的校验和,以便注意到无声的损坏/有点腐烂,因为我的文件系统(ext4)并不关心,而且我认为btrfs还不是很值得信赖。

文件大小各约为100 MB,但通常大约为2 - 10 MB。 CRC-32(c)可以用于此用途吗?哪一个更安全? (可能一起废弃CRC并使用MD4代替?)引入CRC-32c的“用于Internet应用程序的32位循环冗余代码”仅考虑高达128 KiB的消息:

http://www.ece.cmu.edu/~koopman/networks/dsn02/dsn02_koopman.pdf

我想避免在小块中破坏文件并对它们进行散列。

2 个答案:

答案 0 :(得分:4)

CRC-32或32c应该没问题。为了更好的防御而不会显着增加计算成本(特别是在64位平台上),我会使用64位CRC(CRC-64)。这些可以在维基百科页面上或通过谷歌搜索找到。如果您担心的是腐败而不是恶意,那么MD5和SHA512并不比CRC好,而且计算速度要慢得多。

答案 1 :(得分:2)

取决于你所说的“更安全”以及你是多么偏执。

如果我想做类似的话,我会选择md5或sha512。

令人高兴的是,已有应用程序执行此操作,例如tripwire