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)。