2016-12-05 116 views
0

我想了几天,以获得CRC与以下十六进制流型(使用Wireshark嗅探):计算六角流的CRC /校验和(闻)

十六进制数据我闻了闻: 0000001ec001075465737431323308557365726e616d650850617373776f7264d224

这应该是十六进制的数据: 0000001ec001075465737431323308557365726e616d650850617373776f7264

所以最后4位是校验和,在这种情况下,D224

我使用了许多代码片段(PHP,JAVA),以及一些在线校验测算网站: 例如为: http://www.scadacore.com/field-applications/programming-calculators/online-checksum-calculator/

但我没有得到正确的CRC值。

谢谢!

更新1
这里与CRC更六角流包括(最后4位):

  • 0000001dc001045465737409557365726e616d65310950617373776f726431cc96
  • 0000001dc001045465737409557365726e616d65320950617373776f72643289d9
  • 0000001dc001045465737409557365726e616d65330950617373776f726433b51c
  • 0000001dc001045465737409557365726e616d65340 950617373776f7264340347
  • 0000001dc001045465737409557365726e616d65350950617373776f7264353f82
+0

您需要更多示例才能对CRC进行反向工程。 –

+0

@MarkAdler我添加了更多的十六进制流与crc包括在内。 –

回答

1

它似乎是ARC CRC,多项式0x8005,反射,零初始值和没有最后异或,如果我丢弃在每个消息中的初始0000001d,并采取CRC在末端是以小端顺序放入流中。

+0

如果我把我的十六进制流如最后一个“0000001dc001045465737409557365726e616d65350950617373776f726435”这个网站:http://www.sunshine2k.de/coding/javascript/crc/crc_js.html,并选择CRC宽度CRC-16,预定义:CRC16_ARC我得到作为结果0xFFB2,而不是0x3f82。我弄错了吗? - 谢谢! –

+0

是的,你没有像我说的那样删除最初的'0000001d'。 –

+0

你,你是英雄!非常感谢你! –