CRC32(C)能否回归0?

dto*_*oux 17 crc32 crc

我想知道CRC32 sum和CRC32C是否会回归0?给定足够大的数据集,简单的答案将是"是".但是,我想知道CRC32C标准中是否有任何配置可以明确地防止这种情况发生.

这个用例是我需要能够检查远程文件是否为空,我所拥有的是CRC32C校验和.因此,换句话说,我可以推断,如果CRC32C为0,则保证文件为空.

如果可能,请提供对定义此标准的标准的任何参考.

Mar*_*ler 25

@Yanek几乎是完全正确的.

只是为了好玩,这里有一个五字符序列,CRC-32C为零:DYB|O.这是一个十六进制的四字节序列,给出零:ab 9b e0 9b.实际上,这是唯一可以这样做的四字节序列.没有三字节或更短的序列会给你零.这就是@Yanek不完全正确的地方,因为对于三字节或更短的序列,零不太可能.在这些情况下,获得零的概率为零.

  • 必须有一个_lot_而不是那个.只有2 ^ 24个可能的3字节输入,因此必须有2 ^ 32-2 ^ 24 == 4,278,190,080输出概率为零.其余的概率为2 ^ -24. (2认同)

小智 18

零与CRC32校验和的任何其他值一样可能.CRC基本上是将整个输入(作为一个大二进制数)除以预选值的余数.如果输入恰好可被该值整除,则余数和CRC值为零.