CRC32与CRC32C?

时间:2014-10-17 16:22:38

标签: hash checksum

CRC32和CRC32C有什么区别?我知道CRC32很长一段时间了,但今天刚听说CRC32C。它们基本上是相同的方法(即两者都导致给定数据的相同散列)?

1 个答案:

答案 0 :(得分:32)

在zip中找到的CRC32和许多其他地方使用多项式0x04C11DB7;它的反转形式0xEDB88320可能更为人所知,经常在小端实现中找到。

CRC32C使用不同的多项式(0x1EDC6F41,反向0x82F63B78),否则计算相同。结果自然是不同的。这也被称为Castagnoli CRC32,并且在较新的Intel CPU中最为明显,它可以在3个周期内计算完整的32位CRC步长。这就是CRC32C变得越来越流行的原因,因为它允许高级实现,即使有三个周期的延迟(通过并行处理3个数据流并使用线性代数组合结果),每个周期有效处理一个32位字)。