问题标签 [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.
c# - .net 中的 CRC32 十六进制
我正在尝试找到一个 CRC32 计算算法,它以正 8 字符 HEX 输出数据(例如 winrar CRC)。
找到的所有算法都返回一个我不知道如何处理的正/负整数......
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 实现。
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 顺序)。
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
你能告诉我这两个命令之间的区别吗?谢谢!
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 代码是:
android - XAPK 文件验证显示在正确的数据信息中
在运行 APK 扩展文件示例时,我只是跳过了检查 CRC32 以避免 crc 错误算法并且它工作得很好!!但是,虽然 XAPK 文件验证显示正确下载的数据信息 99% !!,如何避免这种情况并通过硬编码查看完整的 100%?
c# - 数据转换问题可能,char 到 unsigned char。一个软件和固件CRC32交互问题
我当前的问题是我在软件中计算 CRC32 哈希,然后在固件中检查它,但是当我在固件中计算哈希时,它应该是它的两倍。
软件(用 C# 编写):
使用的固件功能(用 C 编写):
调用上述函数的固件代码(用C编写):
请注意,CommandPTR 是对软件方法中名为“字符串输入”的相同数据的引用。
有谁知道为什么我可以获得大约两倍于我在软件中使用的价值?Aka HardCRC 是其应有的两倍,我猜它与我的 unsigned char 转换有关。
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
任何解释都会有所帮助
vb.net - 如何在 VB.NET 中向计算 CRC32 校验和的代码添加 ProgressBar?
感谢阅读 - 我正在使用下面的类来计算指定文件的 CRC32 校验和。
我的问题是如何将文件完成的进度(以 % 为单位)报告到不同表单上的进度条。我已经在 New() 子下尝试了 (i / count) * 100 但我没有任何运气,或者为此设置进度条。任何人都可以帮忙吗?
提前致谢
史蒂夫