问题标签 [crc32]

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 回答
1965 浏览

c# - .net 中的 CRC32 十六进制

我正在尝试找到一个 CRC32 计算算法,它以正 8 字符 HEX 输出数据(例如 winrar CRC)。

找到的所有算法都返回一个我不知道如何处理的正/负整数......

0 投票
2 回答
339 浏览

javascript - CRC32 每次返回新整数

每次我运行该password函数时,我都会得到一个新值。为什么?

预期输出:

实际输出:

Jsbin在这里:http: //jsbin.com/udoyaj/4/edit

0 投票
1 回答
1349 浏览

c# - CRC32 从 C++/C# 到 PHP

我不擅长 CRC32、MD5 等算法,所以我什至很难问这个问题:)

基本上有一个 C# 应用程序使用

并在代码的更下方以这样的方法使用Generate

在使用某个crcSeed值时。

我的工作是将整个Generate方法改造成 PHP 函数,同时保留正确的 CRC 计算。

我认为PHP的

功能将不起作用,因为我无法设置 crcSeed。所以我的问题是:

如何在 PHP 中进行精确的 crc32 计算而不求助于外部 dll 等,以便我可以在 Linux 机器上使用代码?

编辑:

CRC 是按块计算的,其中 crcSeed 是初始值。

CRC32Calc 方法实际上是使用 SCTP CRC-32C 版本,所以现在只需要一个 PHP 实现。

0 投票
2 回答
3885 浏览

c - 802.11 FCS (CRC32)

下面的代码是否正确计算了无线 802.11 帧的 FCS 值?
因为下面代码产生的值与wireshark显示的值不匹配。


我以以下方式调用上述函数:


其中标头的类型为:

头信息由 pcap 回调处理:

我从这个链接获得了 crc32() 和 crctable[] 的代码

2年后的编辑:

上面的代码crc32()确实有效;该行
printf("0x%x\n",crc32(sizeof(MSG)-16-4,MSG+16));
打印正确的 802.11 CRC,其中:

MSG是从 Wireshark 复制和粘贴的消息字节数组 ( unsigned char[]);

16是 radiotap 标头大小,

4是 FCS 的大小(帧校验序列,crc32,little-endian=x86 顺序)。

0 投票
1 回答
2557 浏览

linux - 使用gunzip计算一个字符串的crc32码

全部。

我想使用 gunzip 来计算字符串的 crc32 代码。

字符串:测试字符串

此命令运行良好:
echo -n teststring | gzip -f > /tmp/filename && gunzip -lv /tmp/filename && rm -f /tmp/filename

但是这个命令不起作用:
echo -n teststring | gzip -f | gunzip -lv

我搜索了所有 gunzip 手册,发现“如果压缩文件位于不可搜索的媒体上,--list 选项将大小报告为 -1,crc 报告为 ffffffff。”,我想知道为什么标准输出是不可搜索的媒体? 如何使这个命令运行良好?

更新:

这不起作用:
cat /tmp/filename | gunzip -lv

这很好用:
gunzip -lv < /tmp/filename

你能告诉我这两个命令之间的区别吗?谢谢!

0 投票
1 回答
1245 浏览

php - Pycrc 和 PHP 代码的 CRC32 计算与预期结果不匹配

我试图转换定义为 C/C++ 宏的 CRC32 算法

进入 PHP 代码(已经问过一次),我无法得到与 C++ 相同的结果输出。输入(128 字节二进制)显示为十六进制字符串:

CC9F786E57B408F83EE907D32D1D7FA6F180632E1CBE97AE717B2CD964EBB5E71E97B49619E8CD7A94DA0CDD06083D169618017FB8A1722F21FFD609EA655665F8881B05AFE0B282B186E0B8A4A5C26727778EC6639592776E392996430D47143F740E541E3755B1627ECD31C1B98A7C3D010AE273D6900263F6A49600000000

并且预期的十六进制 CRC32 是956E04C6。即使它的顺序相反也没关系,但我必须产生那个确切的值。

该算法以块的形式计算代码,唯一的另一个必须是起始crc32 = 7,即函数CRC32_F_calc的初始 CRC 值,缓冲区的字节(显示为十六进制字符串)实际上是 128 长。

我能得到的甚至还没有接近,所以我检查了pycrc程序,但也无法让它工作。这是发生的事情:

命令(crc-32c和 xor-in 的参数更改为 0x7)

输出

我不知道我错过了什么。我几乎没有时间来实现它(几个小时),所以如果我可以从 PHP 应用程序调用它,即使是 python 程序(具有正确的参数)也很好。

到目前为止,我得到的 PHP 代码是:

0 投票
1 回答
4773 浏览

android - XAPK 文件验证显示在正确的数据信息中

在运行 APK 扩展文件示例时,我只是跳过了检查 CRC32 以避免 crc 错误算法并且它工作得很好!!但是,虽然 XAPK 文件验证显示正确下载的数据信息 99% !!,如何避免这种情况并通过硬编码查看完整的 100%?

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
271 浏览

c# - 数据转换问题可能,char 到 unsigned char。一个软件和固件CRC32交互问题

我当前的问题是我在软件中计算 CRC32 哈希,然后在固件中检查它,但是当我在固件中计算哈希时,它应该是它的两倍。

软件(用 C# 编写):

使用的固件功能(用 C 编写):

调用上述函数的固件代码(用C编写):

请注意,CommandPTR 是对软件方法中名为“字符串输入”的相同数据的引用。

有谁知道为什么我可以获得大约两倍于我在软件中使用的价值?Aka HardCRC 是其应有的两倍,我猜它与我的 unsigned char 转换有关。

0 投票
2 回答
2819 浏览

c# - 需要 CRC 编程帮助,从 .NET 类到 C 的 CRC32 转换

代码(用C编写):

对于初学者; 我知道 CRC 是如何工作的,首先使用指定的多项式计算除数,然后将此 FCS(帧校验序列)附加到数据集并发送到最终用户系统。传输完成后,使用用于计算 FCS 的相同多项式检查 FCS,如果具有该除数的数据的余数为零,则您知道数据是正确的。

我不明白这两个功能的实现。据我所知,函数 chksum_crc32gentab() 生成校验和可以采用 32 位 CRC 多项式的所有可能的十六进制值。我不明白的一件事是poly = 0xEDB88320L; 等价于多项式。我也不明白这个函数底部的逻辑。例如,条件if (crc & 1),这是否意味着对于 crc 中为 1 的每一位,计算,否则右移一位?

我也不明白chksum_crc32(unsigned char *block, unsigned int length); . 这个函数是否只接收一串字节并将它们转换为使用表计算的正确 crc 值?我想我对它在 for 循环中使用的逻辑感到困惑。

如果有人理解这段代码,解释会很好;这确实适用于 .net 类的 crc32 转换,如何转换数据然后由这些函数使用的示例如下:(C# 源代码)

这是 C 代码的原始站点和项目。http://www.codeproject.com/Articles/35134/How-to-calculate-CRC-in-C

任何解释都会有所帮助

0 投票
2 回答
495 浏览

vb.net - 如何在 VB.NET 中向计算 CRC32 校验和的代码添加 ProgressBar?

感谢阅读 - 我正在使用下面的类来计算指定文件的 CRC32 校验和。

我的问题是如何将文件完成的进度(以 % 为单位)报告到不同表单上的进度条。我已经在 New() 子下尝试了 (i / count) * 100 但我没有任何运气,或者为此设置进度条。任何人都可以帮忙吗?

提前致谢

史蒂夫