我想先说一下,我对CRC技术的了解非常有限,我花了大部分时间来阅读和阅读,但我找不到我想要的东西。这可能是不可能的,如果是这样,请告诉我!
我所拥有的是一系列看似随机的数据: 0xAF 0xBC 0x1F 0x5C ......等
在这个数据中,有一个非随机的字段(我放在那里),我想使用整个数据集的CRC校验来查看该字段是否设置为正确的值(假设为0x12) 0x34 0x56 0x78)。我试图偷偷摸摸地做这个,这是关键,因为我不想让一个随意的观察者知道我正在寻找那个领域 - 这就是为什么我不只是读出我想要的位置并与预期值进行比较。
该字段的值是不变的,其余的几乎是随机的。如果有帮助的话,这里和那里的某些字段也将保持不变。
这可能吗?我不限制CRC检查的次数,或者我通过数据的方向,或者我更改多项式,或者实际上是什么。我也可以从阵列的中间开始,或者从第三个开始,或者其他什么,但我不想在我感兴趣的领域附近开始。
答案 0 :(得分:0)
好的,所以,确认,你有这样的数据:
0xAF 0xBC 0x1F 0x5C 0x11 0x1F 0x5C 0x11
0x2D 0xAB 0xBB 0xCC 0x00 0xBB 0xCC 0x00
0x12 0x34 0x56 0x78 0xFF 0x56 0x78 0xFF
并且您试图在该数据的特定位置隔离某些内容,例如,在那里找到0x12 0x34 0x56 0x78
值。
为了澄清,您想要1)检查该值(特定地址范围的值),然后2)然后在整体上做一个crc?或者您是否希望将搜索值集成到crc算法中?
答案 1 :(得分:0)
唯一可以实现您想要的功能的是离散小波变换。 (CRC将始终取决于您计算它的所有位 - 这就是重点。)
您可以找到要应用于离散小波基函数集的系数,这些函数将使用基函数的正交性为您提供仅包含感兴趣区域的有限基函数。看起来小波函数在整个消息上,但是系数被操纵,以便感兴趣区域之外的值在总和中取消。
虽然这对于代码的随意读者来说可能并不明显,但是直接写下函数和系数,并将其相乘以查看系数中选择的消息中的哪些字节。