File 两个可能相同但不确定的文件的CRC32字符串比较

File 两个可能相同但不确定的文件的CRC32字符串比较,file,zip,crc32,File,Zip,Crc32,我有一个关于CRC(校验和冗余校验)的问题 如果文件中有“轻微的”更改,例如仅更改一个字符,其CRC32结果是否会受到影响?或者有可能两个不同的文件有相同的CRC32结果 我有两个文件,我不知道它们是否完全相同,但它们有相同的CRC32结果 非常感谢您的反馈 谢谢是的,您可以保证,如果只有一个字节更改,则CRC会更改。事实上,如果一行中的四个字节被更改,或者任何连续的32位被更改(即,32位中的第一位和最后一位被翻转,中间的任何子集被翻转),则可以保证CRC将被更改 CRC的这种突发检测能力使其

我有一个关于CRC(校验和冗余校验)的问题

如果文件中有“轻微的”更改,例如仅更改一个字符,其CRC32结果是否会受到影响?或者有可能两个不同的文件有相同的CRC32结果

我有两个文件,我不知道它们是否完全相同,但它们有相同的CRC32结果

非常感谢您的反馈


谢谢

是的,您可以保证,如果只有一个字节更改,则CRC会更改。事实上,如果一行中的四个字节被更改,或者任何连续的32位被更改(即,32位中的第一位和最后一位被翻转,中间的任何子集被翻转),则可以保证CRC将被更改

CRC的这种突发检测能力使其对于突发错误常见的传输和存储应用非常重要

对于长一位的突发,有趣的是,只有一个33位模式将保持CRC不变。因此,几乎所有33位连续错误也将被检测到

对于更多翻转的位,或在更分散的位置,可以返回原始CRC。尽管可能性很低,除非翻转是精心制作的。你可以看看我的程序,它在一条消息中给出了一组要翻转的位置,一个所需的CRC将告诉你哪些位置要翻转以获得所需的CRC


CRC的线性特性使其相对容易实现。除了更多的位之外,这也是使用SHA-2等加密散列函数的原因,对于SHA-2,没有已知的方法来制作消息以获得所需的签名。

一个字节的更改将更改CRC,但四个字节的更改可能会保留CRC。您永远无法将文件压缩到4字节,这将是完美的压缩;)必须存在冲突(不同文件使用相同的CRC),概率在这里很重要(使用更大的CRC或哈希,如MD5或SHA,以降低冲突概率)。我假设您来自通信工程背景。非常好的解释。@Alana参考号和相关链接。