2011-05-10 41 views
0

我想保留文件集合的校验和,以便注意到无声损坏/位腐烂,因为我的文件系统(ext4)不在乎,btrfs也不是很值得信任,我想。CRC-32(c)大文件好吗? (高达100 MB)

这些文件每个文件大小大约为100 MB,但通常大约为2至10 MB。 CRC-32(c)是否适合这种用途?哪一个更安全? (也许报废的CRC一起,使用MD4呢?)的论文“32位循环冗余码的互联网应用”引入CRC-32C只考虑信息多达128个昆明植物研究所:

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

我会就像避免将文件分成小块并散列这些文件一样。

回答

2

取决于你的意思是“更安全”,以及你是多么偏执。

如果我想做类似的事情,我会选择md5或sha512。令人高兴的是,已经有应用可以做到这一点,如tripwire

+1

+1。但不要使用MD5。它容易受到基于碰撞的攻击。不应再使用MD5。 – Heisenbug 2011-05-10 13:58:04

+0

Re tripwire,我在考虑只是将校验和存储在xattr中,偶尔用cron作业检查磁盘。 – pauliq 2011-05-10 14:02:03

+0

我并非试图防止对校验和的恶意干扰。 – pauliq 2011-05-10 14:04:04

4

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

相关问题