首页
社区
课程
招聘
HDLC格式中CRC16的重复问题
发表于: 2010-12-28 09:07 5604

HDLC格式中CRC16的重复问题

2010-12-28 09:07
5604
HDLC的格式是:
0x7E,  FrameHeader,  HCS,  FrameData,  FCS,  0x7E

1. 0x7E是开始和结束标志,不计入校验
2. HCS是FrameHeader部分的校验,使用CRC16
3. FCS是FrameHeader、HCS、FrameHeader三部分的校验和,使用CRC16

现在的问题是:
我在FrameHeader中随意改变一个或多个字节,
并重新计算FrameHeader的CRC16值后更新HCS,
之后再对整个报文计算CRC16,并更新FCS后,
发现修改之后的报文的FCS和为修改的FCS相同。

麻烦老大来解释一下吧……

下面的报文红色的是修改的位置,蓝色的是HCS和FCS
7EA02B00029C1F03F690F3E6E600C301E600010000636201FF830102030600054A72127FFF09820001FF64BB7E
7EA02B00029C1F03769877E6E600C301E600010000636201FF830102030600054A72127FFF09820001FF64BB7E

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币:
能力值: (RANK: )
在线值:
发帖
回帖
粉丝
2
因为 HCS = CRC16(FrameHeader)
所以 CRC16(FrameHeader,  HCS) = 某常数.
于是 CRC16(FrameHeader,  HCS,  FrameData) = CRC16(某常数, FrameData) = 另一个常数
2010-12-28 19:28
0
游客
登录 | 注册 方可回帖
返回
//