CRC32和CRC32C有什么区别?我知道CRC32很长一段时间了,但今天刚听说CRC32C.它们基本上是相同的方法(即两者都导致给定数据的相同哈希)?
Dar*_*zka 40
在zip和很多其他地方发现的CRC32使用多项式0x04C11DB7; 它的反转形式0xEDB88320可能更为人所知,通常在小端实现中找到.
CRC32C使用不同的多项式(0x1EDC6F41,反向0x82F63B78),否则计算是相同的.结果自然是不同的.这也被称为Castagnoli CRC32,并且在较新的Intel CPU中最为明显,它可以在3个周期内计算完整的32位CRC步长.这就是CRC32C变得越来越流行的原因,因为它允许高级实现,即使有三个周期的延迟(通过并行处理3个数据流并使用线性代数组合结果),每个周期有效处理一个32位字).