问题标签 [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 投票
4 回答
4512 浏览

bash - 从 C++ 到 bash 的 crc16 算法

我正在尝试在 bash 中实现 CRC16 校验和。我正在从现有的 C++ 代码中移植。我快到了,但我得到了不同的答案。

我不太明白为什么 C++ 代码和 bash 脚本之间的校验和不同。

另一双眼睛会有很大的帮助。

这是 C++ 代码:

这是我的 bash 代码:

它会与整数的大小有关吗?我猜在 bash 中我对此无能为力。

我得到了一个实际数字,但它与我知道可以正常工作的 C++ 不匹配。有没有人看到我可能把事情搞砸的地方?

0 投票
3 回答
1579 浏览

c - CRC 算法如何为 CCITT16 工作以及如何为 CCITT8 获得一个

我正在寻找实现 CRC-8 校验和 - 在阅读 CRC 时,我遇到了 CCITT-16 的算法(多项式 X^16 + X^12 + X^5 + 1):

或者作为宏:

我在这里有两个问题:

  1. 这个算法是如何从多项式推导出来的?
  2. CCITT8(多项式 X^8 + X^2 + X + 1)是否有类似的简单算法?
0 投票
2 回答
6906 浏览

c# - c#中的CRC-ITU计算

我是 C# 的新手。我需要为从 GPS 设备接收到的数据包计算 CRC-ITU。文档中提供了 C 代码,但我不知道如何将其移植到 C#,任何人都可以帮助我吗?

这是 C 中的 CRC-ITU 算法:

我还从http://ppcode.blogbus.com/logs/1656947.html找到了 C# 代码,但我不知道如何使用它,这是代码

这是文档中的一些示例:

完整数据包:0x78 0x78 0x0D 0x01 0x01 0x23 0x45 0x67 0x89 0x01 0x23 0x45 0x00 0x01 0x8C 0xDD 0x0D 0x0A

起始位:0x78 0x78 长度:0x0D 协议号:0x01 设备 ID:0x01 0x23 0x45 0x67 0x89 0x01 0x23 0x45 序列号:0x00 0x01 CRC 校验:0x8C 0xDD 停止位:0x0D 0x0A

从文档中引用:

设备或服务器可以通过识别码判断接收到的数据的准确性。有时,由于电子噪声或其他干扰,数据在传输过程中会发生一些变化。在这种情况下,识别代码可以确保核心或关联核心对此类错误数据不做任何事情,这将增强系统的安全性和效率。该识别码采用CRC-ITU识别方法。CRC-ITU值是协议中从“Package Length”到“Information Serial Number”(包括“Package Length”和“Information Serial Number”),如果接收方接收到CRC错误的计算信息,则忽略并丢弃该数据包裹。

所以有人知道如何从上面的例子中获得 crc 值吗?谢谢

0 投票
7 回答
235553 浏览

c - 计算 CRC16 校验和的函数

我正在开发一个库,以通过 RS232 或 RS485 连接提供简单可靠的通信。此代码的一部分涉及对数据使用 CRC16 校验和来检测线路噪声造成的损坏。我创建了一个函数来计算 CRC16 校验和,但它似乎没有输出正确的值。

我写的相关代码如下(也可以在这里找到)。

我正在对照这个在线 CRC 计算器检查我的输出。

我得出的结论要么是我对如何计算 CRC16 的理解是错误的,要么是在线计算器是错误的(前者似乎更有可能)。有人可以告诉我哪里可能出错了吗?

0 投票
3 回答
1255 浏览

python - 将 Matlab 代码翻译成 Python

我对这个算法有疑问:

我需要将该代码翻译成 Python,并且我已经完成了以下操作:

我的问题是下一个:

当我执行 de Python 代码时,计算 de xor 需要很长时间,我认为问题在于

是一个矩阵,计算时间很长。哪个是问题?

该算法的伪代码如下:

我的问题是:为什么我的 python 代码需要很长时间才能执行?怎么了?我认为的问题在于

非常感谢!

0 投票
2 回答
8533 浏览

php - PHP 十六进制和二进制

我有以下格式的字符串:“0A1344010400010005”(十六进制表示)

我需要将此字符串转换为字节数组(0x0a、0x13、0x44 等),以便可以在以下函数中使用这些数据:

$this->value值为0xFFFF$this->arr是一个包含元素的数组:array(0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf).

我做了以下事情。基本上,这会遍历字符串并将每 2 个字符分隔为每字节的十六进制表示并将它们转换为二进制字符串。

似乎它一直在生成值 0 的结果。有什么我应该做的吗?

非常感谢你的帮助!

0 投票
3 回答
2701 浏览

php - 为 CRC16 函数将 C 转换为 PHP

我需要帮助将 C 代码转换为 PHP。以下是C代码:

到目前为止,我已经设法转换了以下 PHP 代码:

我试图运行以下代码:

它似乎显示了错误的结果。当我尝试$str用其他值替换时,结果将始终相同。

我相信我的 PHP 代码可能有问题。但是,我似乎无法弄清楚造成这种情况的原因。

0 投票
5 回答
3828 浏览

cryptography - Progress 10.1C 4GL 编码功能

有谁知道Progress 10.1C编码函数中使用了哪种算法?

我发现了这个: http: //knowledgebase.progress.com/articles/Article/21685

Progress 4GL ENCODE函数使用CRC -16算法生成其编码输出。

进度 4GL:

给出输出“ LkwidblanjsipkJC

但是例如在http://www.nitrxgen.net/hashgen/上使用密码“测试”,我从来没有从进度中得到结果。

有任何想法吗?:)

0 投票
2 回答
4986 浏览

linker - 在 IAR Embedded Workbench 中自动配置链接器

我正在做一个固件项目,我必须对闪存完整性进行 crc16 检查。

crc 使用 IAR Xlink 链接器计算并保存在闪存的末尾。再次在运行时从代码计算 crc,并与闪存中存储的值进行比较以检查完整性。但是,我们只能在闪存的代码段上计算 crc。每当我们对代码进行一些更改时,它的大小可能会发生变化。我可以自动化我现在手动执行的这个过程吗?

从 .xcl 链接器文件:

在这里,我现在需要更改第二个代码段的结束值,即 0x20A13。我从 .map 文件中得到这个值,即我的代码在闪存内的内存范围。这是我做的第一个改变。

在这里,我需要对代码进行第二次更改:

请帮助自动化此过程!

0 投票
4 回答
28315 浏览

byte - crc16实现java

我在计算 java 中字节数组的 CRC-16 实现时遇到问题。基本上我正在尝试将字节发送到开始写入标签的 RFID。我可以通过在 mac 上查看 tcpdump 命令来查看数组的校验和值。但我的目标是自己生成它。这是我的字节数组,它应该生成 0xbe,0xd9:

0x55 是标题。正如文档所说,它将被排除在外。

每当我在 java 上尝试这个数组(使用 0xbe,0xd9)时,RFID 就可以工作。我的问题是生成这些校验和值。我几乎搜索了整个网络,但没有机会。我找不到任何产生 0xbe,0xd9 的算法。

任何想法对我来说都是最受欢迎的。提前致谢。

编辑:这是随 rfid 提供的协议