问题标签 [crc16]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
350 浏览

java - 从 Java 到 PHP 的 CRC16 代码

如何将 Java CRC16 代码转换为 PHP 代码?PHP 不接受byte和 >>>

0 投票
4 回答
26883 浏览

java - 用 Java 中的多项式 x^16 + x^12 + x^5 + 1 计算 CCITT 标准 CRC

我需要帮助在 Java 中使用多项式 x^16 + x^12 + x^5 + 1 (0x1081) 计算 CCITT 标准 CRC。我在互联网上尝试了许多示例,但每个示例都返回示例中的值之外的其他值。

例如对于这个数组 [0xFC] [05] [11],结果需要是 [27] [56]。

使用此代码:

我得到的结果FA DE不是 [27] [56]

使用此代码:

我明白了CRC16-CCITT = 8dca

使用此代码:

我明白了521

希望可以有人帮帮我。我需要这个来与使用 ID003 协议的设备进行通信。

编辑:在http://www.lammertbies.nl/comm/info/crc-calculation.html使用这个在线计算器输入 FC0511 我从 CRC-CCITT (Kermit) 得到 0x2756。

0 投票
1 回答
2679 浏览

python - 如何在 python3 中计算 ANSI CRC16 多项式(0x8005)?

我尝试使用此代码计算 ANSI CRC16 多项式(0x8005)

但我收到了这个错误信息

ValueError:多项式的次数必须是 8、16、24、32 或 64

0 投票
7 回答
34887 浏览

python - CRC-CCITT 16 位 Python 手动计算

问题

我正在为嵌入式设备编写代码。许多用于 CRC-CCITT 16 位计算的解决方案都需要库。

鉴于使用库几乎是不可能的并且会消耗其资源,因此需要一个函数。

可能的解决方案

下面的CRC计算是在网上找到的。但是,它的实现是不正确的。

http://bytes.com/topic/python/insights/887357-python-check-crc-frame-crc-16-ccitt

现有的在线解决方案

以下链接正确计算了 16 位 CRC。

http://www.lammertbies.nl/comm/info/crc-calculation.html#intr

“CRC-CCITT (XModem)”下的结果是正确的 CRC。

规格

我相信现有在线解决方案中的“CRC-CCITT(XModem)”计算使用的多项式为0x1021.

问题

如果有人可以编写一个新功能或提供方向来解决checkCRC所需规范的功能。请注意,使用库或任何import's 都无济于事。

0 投票
1 回答
1544 浏览

java - 需要帮助纠正用 java 编写的 CRC-ITU 检查方法中的问题

我们正在尝试在 Java 上编写 GPS 设备侦听器。

这样做时,我们无法为 CRC-ITU 错误检查开发正确的代码。从协议文档生成 crc 码的解释如下

终端或服务器可以使用校验码来区分接收到的信息是否有误。为防止数据传输过程中发生错误,在数据误操作的基础上增加了错误校验,提高了系统的安全性和效率。校验码由CRC-ITU校验方法生成。协议结构中数据的校验码,从数据包长度到信息序列号(包括“数据包长度”和“信息序列号”)都是CRC-ITU的值。如果在计算接收到的信息时出现CRC错误,接收方将忽略并丢弃该数据包。

这是数据监听器类

这是CRC生成类

我正在做这个更新的代码。

0 投票
3 回答
2749 浏览

c# - 如何使用 C# 实现 CRC-16-DNP?

我正在尝试使用 c#实现16-CRC [DNP]generator polynomial ,给出为

在此处输入图像描述

我找到了 16-crc 的标准解决方案:[来源]

现在,如果我转换我的多项式,我得到1 0011 1101 0110 0111=> (3D65)h& 我的问题是我需要改变什么来为给定多项式工作上述解决方案。

Edit: 我还需要考虑两件事,

1) 初始值为 0 &
2) 最终的 CRC 必须补码。

0 投票
2 回答
239 浏览

reverse-engineering - 需要帮助对 CRC16 进行逆向工程

我正在尝试连接到 Safecom TA-810(徽章/注册系统)以自动化计算员工每天工作时间的过程。目前这是通过以下方式完成的:

  1. 拉取数据到官方应用
  2. 打印所有“注册”的列表
  3. 手动将打印列表中的值输入到我们的 HR 应用程序中

这是一项可能需要几个小时的工作,我们希望看到自动化。到目前为止,官方技术支持一直令人失望,并拒绝分享任何细节。

使用 wireshark,我一直在捕获 UDP 传输,并且非常成功地理解了协议是如何构建的。我只对我认为的 CRC 字段有疑问。我不知道它是如何计算的(CRC 类型和参数)以及使用哪些字段...

这是消息头的样子:

一些例子:

我也一直试图通过阅读原始应用程序的反汇编代码来解决这个问题。下面的屏幕截图发生在 socket.sendto 之前,并且似乎是相关的。

原始应用代码

任何帮助将不胜感激。

编辑:使用 ollydbg 调试应用程序取得了一些成功。CRC 出现在以下屏幕截图中所选行的寄存器(反转)EDX 中。

crc 出现

0 投票
2 回答
1334 浏览

checksum - 逆向工程未知CRC

我正在尝试对CRC进行逆向工程。当我计算数据的 CRC-16 时,它与发送数据的 crc 非常相似,但并不完全相等。

找出计算此 CRC 的确切方法的最佳方法是什么?是否可以在这里使用另一个多项式或另一个初始值?

以下是一些与 CRC-16 相比具有自己 CRC 的数据包:


似乎 CRC-16 是正确的算法,但除此之外,de 值有一个小的变化。它似乎基于数据的第一个到十六进制数字,甚至可能是 CRC 的第一部分。

0 投票
1 回答
832 浏览

crc16 - 您如何根据 CRC 多项式计算查找表的值?

在此代码http://introcs.cs.princeton.edu/java/51data/CRC16.java中,程序使用基于 crc 多项式 1 + x^2 + x^15 + x^16 的查找表。我的问题是如何根据 crc 多项式计算查找表的值。否则,您如何为任何给定的 crc 多项式自己制作查找表?您可以使用的示例是 x15+x13+ x6+x4+x1+1 的 crc 多项式的查找表是什么?

0 投票
2 回答
185 浏览

reverse-engineering - 对 CRC 数据包进行逆向工程

我是新来的倒车。

我需要分析一个我认为由 CRC 检查的数据包。

数据包如下:

从我到现在为止,这个十六进制字符串的第一部分包含帧信息和以太网信息是:1B1B1B1B0101010176058C0D1

之后,所有数据都经过 CRC 校验。

有什么办法可以反转CRC并读取数据????我怎么知道它是什么基数?(16/32/64)(我有更多这样的数据包)

感谢您的答案..!