- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我最后有一些带有 16 位校验和的数据包。我想猜测使用了哪种校验和算法。
首先,从转储数据中,我可以看到数据包有效负载中的一个字节变化完全改变了校验和,所以我可以假设它不是某种简单的异或或求和。
然后我尝试了several variations of CRC16 ,但没有太多的运气。
这个问题可能更偏向于密码学,但我对任何易于理解的统计工具非常感兴趣,以找出这可能是哪个 CRC。我什至可能会求助于 drawing different CRC algorithms如果其他一切都失败了。
背景故事:我有带有某种校验和的串行 RFID 协议(protocol)。我可以毫无问题地重播消息,并解释结果(没有校验和检查),但我无法发送修改过的数据包,因为设备将它们丢弃在地板上。
使用现有软件,我可以更改 RFID 芯片的有效载荷。但是,唯一的序列号是不可变的,所以我没有能力检查每个可能的组合。尽管我可以生成递增 1 的值转储,但不足以使详尽的搜索适用于此问题。
dump files with data如果问题本身还不够,可以使用:-)
需要引用文件吗? A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS是我在这里提出问题后发现的很好的引用。
最后,在接受的答案比它的 CCITT 非常有用的提示之后,我
used this CRC calculator , 并用已知校验和异或生成校验和以获得 0xffff,这使我得出结论,最终异或是 CCITT 的 0x0000 的 0xffff 插入。
最佳答案
对于 CRC,需要考虑许多变量:
Polynomial
No of bits (16 or 32)
Normal (LSB first) or Reverse (MSB first)
Initial value
How the final value is manipulated (e.g. subtracted from 0xffff), or is a constant value
LRC: Polynomial=0x81; 8 bits; Normal; Initial=0; Final=as calculated
CRC16: Polynomial=0xa001; 16 bits; Normal; Initial=0; Final=as calculated
CCITT: Polynomial=0x1021; 16 bits; reverse; Initial=0xffff; Final=0x1d0f
Xmodem: Polynomial=0x1021; 16 bits; reverse; Initial=0; Final=0x1d0f
CRC32: Polynomial=0xebd88320; 32 bits; Normal; Initial=0xffffffff; Final=inverted value
ZIP32: Polynomial=0x04c11db7; 32 bits; Normal; Initial=0xffffffff; Final=as calculated
IPX: Polynomial=0x8005; 16 bits; Reverse; Initial=0xffff; Final=as calculated
ISO 18000-6B: Polynomial=0x1021; 16 bits; Reverse; Initial=0xffff; Final=as calculated
ISO 18000-6C: Polynomial=0x1021; 16 bits; Reverse; Initial=0xffff; Final=as calculated
Data must be padded with zeroes to make a multiple of 8 bits
ISO CRC5: Polynomial=custom; 5 bits; Reverse; Initial=0x9; Final=shifted left by 3 bits
Data must be padded with zeroes to make a multiple of 8 bits
EPC class 1: Polynomial=custom 0x1021; 16 bits; Reverse; Initial=0xffff; Final=post processing of 16 zero bits
关于checksum - 我怎么能猜到校验和算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149617/
我是一名优秀的程序员,十分优秀!