Java中的CRC计算

问题描述 投票:0回答:3

我正在使用 x-modem 协议和 133 字节数据包从串行端口读取文件。我正在阅读 在那

      1 byte is SOH
      2 byte packet number
      3 byte nagative of packet number
next  128 bytes data
      2 bytes CRC sent from other side.

我必须计算 128 字节数据的 CRC 和从另一端发送的 2 字节 crc,我必须将其设为单字节,并且必须与我计算的 crc 进行比较。我怎样才能在java中做到这一点?

java serial-port crc xmodem
3个回答
5
投票

尝试使用Jacksum


1
投票

Sun JDK 1.6 包含 sun.misc.CRC16,但这有可能不是您正在寻找的 CRC16,因为使用了几个不同的多项式。


1
投票

这是我的 C 代码,将其移植到 Java 很简单 - 您可以以任何您喜欢的方式自由使用它。对 word 的引用是针对 16 位无符号值 - 您应该能够在 Java 中使用 char 来代替。

自从我使用 16 位 CRC 以来已经太久了,所以我不记得是否存在基于种子的变化。我很确定我早在 X-Modem 的 C 实现中就使用了这段代码。

来源发布在 tech.dolhub.com

© www.soinside.com 2019 - 2024. All rights reserved.