【问题标题】:Is CRC32 really so bad for file integrity check?CRC32 对文件完整性检查真的那么糟糕吗?
【发布时间】:2012-05-09 10:54:44
【问题描述】:

当然,MD5 比 CRC32 好,SHA1 比 MD5 好等等......但它们也比 CRC32 慢得多。

知道了,我正在考虑如何检查被传输文件的一致性,CRC32是最快的选项。

我没有找到任何地方CRC32 的完整性检查有多糟糕(也许换句话说,CRC32 可能不会检测到格式错误的文件)?

【问题讨论】:

    标签: file crc32 integrity


    【解决方案1】:

    引用http://www.mathpages.com/home/kmath458.htm

    所以,如果我们假设数据的任何损坏都会影响我们的字符串 以完全随机的方式,即损坏的字符串是 与原始字符串完全不相关,则概率 未检测到的损坏字符串的 1/(2^n)。这是基础 人们说 16 位 CRC 的概率为 1/(2^16) = 1.5E-5 未能检测到数据错误,32位CRC的概率为1/(2^32),约为 2.3E-10(不到十亿分之一)

    我的观点:CRC-32 对于错误检测来说绰绰有余。它正在被广泛使用。但是,当您想将其用作“哈希函数”时,它并不安全。

    【讨论】:

      【解决方案2】:

      使用 CRC-32 很容易发生冲突(相同的哈希输出但不同的数据),因为与其他算法相比,CRC-32 仅使用 32 位。 MD5是128位,SHA-1是160位,SHA-2(SHA256/512系列)是224位-512位。 (取决于你使用什么)。此外,对于 SHA-2 系列,没有发现冲突。

      有关可能导致数据冲突的数学和概率的更多信息。请寻找Hash CollisionBirthday paradox problem

      【讨论】:

        猜你喜欢
        • 2014-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 2011-08-10
        • 2011-03-12
        相关资源
        最近更新 更多