我想保留一组文件的校验和,以便注意到无声的损坏/有点腐烂,因为我的文件系统(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
我想避免在小块中破坏文件并对它们进行散列。
答案 0 :(得分:4)
CRC-32或32c应该没问题。为了更好的防御而不会显着增加计算成本(特别是在64位平台上),我会使用64位CRC(CRC-64)。这些可以在维基百科页面上或通过谷歌搜索找到。如果您担心的是腐败而不是恶意,那么MD5和SHA512并不比CRC好,而且计算速度要慢得多。
答案 1 :(得分:2)