[英]Determine Error Offset Byte by CRC16
是否可以确定从CRC16计算中更改的一个或多个字节?
例如,假设我得到一个780字节的配置文件,该文件的末尾包括两个字节的CRC16值(因此,CRC16是根据前778个字节计算得出的)。 当我计算文件内容的CRC16(778个字节的末尾不包括CRC16)时,是否有所不同,是否可以确定错误发生的字节偏移?
仅使用CRC16的两次计算即可。
CRC16只是一个校验和:它可以告诉您有区别,但没有区别。
简短的答案是不,您不能。
要了解为什么必须了解CRC的计算方式以及在数学上称为哈希运算的原因。 这意味着无法从生成的哈希码(在这种情况下为CRC)可靠地重建输出。
有一些统计分析方法可以使您根据某些特定的输入测试用例来推断一些有关原始文本的信息,但是在大多数情况下,对于天真的观察者来说,并不能直接从CRC映射回原始文本。 因此,除非以某种方式构造了原始文本,否则在大多数情况下都无法知道更改数据的偏移量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.