Language agnostic CRC32的弹性是否与两个不同启动的CRC16一样?
给定一个待检查字符串Language agnostic CRC32的弹性是否与两个不同启动的CRC16一样?,language-agnostic,crc,Language Agnostic,Crc,给定一个待检查字符串s、一个独立验证的“salt”t、一个append操作符+和任意大小的循环冗余校验函数crc2X()和crcX(),是否是crcX(s)+crcX(t+s)对于字符串s?否,具有与crc2X相同的数据降级检测能力 crcX(t+s)可以通过crcX(t)、crcX(s)和t的长度来计算。因此,您通过添加crcX(t+s)添加了关于s的零错误检测信息。您所添加的只是有关t的错误检测信息 crc2X(s),对于正确选择的CRC多项式,将比crcX(s)具有更好的错误检测能力,这仅
s
、一个独立验证的“salt”t
、一个append
操作符+
和任意大小的循环冗余校验函数crc2X()
和crcX()
,是否是crcX(s)+crcX(t+s)
对于字符串s
?否,具有与crc2X
相同的数据降级检测能力
crcX(t+s)
可以通过crcX(t)
、crcX(s)
和t
的长度来计算。因此,您通过添加crcX(t+s)
添加了关于s
的零错误检测信息。您所添加的只是有关t
的错误检测信息
crc2X(s)
,对于正确选择的CRC多项式,将比crcX(s)
具有更好的错误检测能力,这仅仅是因为它有更多的位。等等,你的意思是crc2X(t+s)
?@MarkAdler不,我的意思与问题中所写的一样。如果您需要更多信息,请随时询问。我不理解这个问题,所以我删除了我的答案。我甚至不知道您如何在两条不同的消息上比较两种不同的错误检测功能。@MarkAdler我要澄清的是,只有s
是要检查的字符串t
用于扰乱内部状态,以便crcX(s)
未检测到的错误将被crcX(t+s)
检测到。我不知道该属性。因此,腌制显然不会有什么不同。例如,对于所有大小相同的前置字符串和附加字符串,给定相同长度的冲突crc32(“a1sellers”)=crc32(“adverteesdef”)
,可以得出crc32(“ABCa1sellersDEF”)=crc32(“ABCadverteesDEF”)
,事实上,它保留了我尝试过的所有校验和算法(crc32、crc16、adler32、fletcher16)。