问题标签 [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 回答
2323 浏览

crc32 - 检查零填充比特流的 crc32

我正在尝试从 Wikipedia ( http://en.wikipedia.org/wiki/Cyclic_redundancy_check ) 验证此声明:

有时,实现会在多项式除法发生之前将n 个0 位(n是 CRC 的大小)附加到要检查的比特流。这样做的方便是原始比特流的余数加上校验值正好为零,因此可以简单地通过对接收到的比特流执行多项式除法并将余数与零进行比较来检查CRC。

我使用了来自http://www.lammertbies.nl/comm/info/crc-calculation.html的在线 CRC-32 计算器

  1. 原始消息是'test'或0x74657374,它的CRC-32是0xD87F7E0C。
  2. 然后添加 4 个零字节,因此消息为 0x7465737400000000,其 CRC-32 为 0x15521A21。
  3. 然后用步骤 2 中的 CRC-32 替换零,消息为 0x7465737415521A21。
  4. 0x7465737415521A21的CRC32是0xE1E9ADD7,这里不应该是0吗?

谁能指出我出了什么问题?

0 投票
1 回答
519 浏览

file-upload - 当以块上传大文件并且每个块都经过 CRC 验证时,我应该在完成时对整个文件进行 CRC 验证吗?

我编写了一个小程序和服务器,通过 HTTP 上传带有 CRC 验证和恢复功能的大文件。它工作得很好,但我想知道我是否应该重新考虑一些有效性检查,因为它可能是多余的。

问题的标题实际上说明了一切。

检查完整文件的 CRC 有效性是否完全多余?因为我知道每个块都是有效的,并且在将文件压缩在一起时应该仍然有效(如果没有文件系统错误,在这种情况下我应该遇到大麻烦),我认为它应该足以合理地确定上传顺利进行。

你怎么看?

最好的祝福

0 投票
3 回答
2109 浏览

c - 如何加快 crc32 计算?

我正在尝试在 linux 上尽可能快地编写 crc32 实现,作为学习优化 C 的练习。我已经尽力了,但我无法在网上找到很多好的资源。我什至不确定我的缓冲区大小是否合理;它是通过反复实验选择的。

提前感谢我可以阅读的任何建议或资源。

0 投票
1 回答
4712 浏览

iphone - 如何检查 NSData 的 CRC32?

可能重复:
在 Objective-C 中获取 NSData 的 CRC 校验和

我在 xcode 中找不到任何 CRC32 算法的实现。谁能帮我计算一下?

0 投票
3 回答
20349 浏览

python - 带有十六进制输入的 Python 中的 CRC32 校验和

我想在python中计算一串十六进制值的CRC32校验和。我找到了 zlib.crc32(data) 和 binascii.crc32(data),但是我发现使用这些函数的所有示例都将“data”作为字符串(例如“hello”)。我想将十六进制值作为数据传递并找到校验和。我尝试将数据设置为十六进制值(例如 0x18329a7e),我得到一个 TypeError:必须是字符串或缓冲区,而不是 int。当我将十六进制值设为字符串(例如,'0x18329a7e')时,该函数会进行评估,但我认为它不会评估正确的校验和。任何帮助,将不胜感激。谢谢!

0 投票
4 回答
3772 浏览

hash - CRC32+大小与 MD5/SHA1

我们有一个文件存储,该存储根据附加到 crc32 的大小唯一标识一个文件。

我想知道这个校验和( crc32 + size )是否足以识别文件,或者我们是否应该考虑其他一些散列技术,如 MD5/SHA1?

0 投票
3 回答
453 浏览

python - 为什么这个python正则表达式返回错误的字符串

下面我有一段代码应该用另一个字符串替换一个字符串,但似乎没有这样做。我不是 python 或正则表达式专家,谁能告诉我为什么这可能会出错。

这是它正在操作的文件:

这是输出

它应该做的是找到 CRC 字符串,计算值,然后将一个字符串放在原始字符串中的位置。我一直在尝试一堆东西,但似乎没有任何效果。

0 投票
1 回答
3873 浏览

c++ - 这种 CRC32 方法的大端兼容版本会是什么样子?

我正在开发一个需要对正在传输的数据进行 CRC32 检查的项目。我想让我的代码不仅兼容 Intel 架构(“Little Endian”),还兼容 Solaris 架构(“Big Endian”)。我发现这个“CCRC32”适用于两台小端机器,但完全没有通过任何跨平台测试:

代码:

CCRC32.h & CCRC32.cpp (摘自维基百科的“外部链接”)

http://en.wikipedia.org/wiki/Cyclic_redundancy_check

这是代码的方法示例:

所以我的问题是:你们中的任何一位大端大师知道如何调整上述方法以使用大端机器,或者是否有人知道可以实现我的目标的现有源代码?到目前为止,我的搜索一直不成功。

感谢您的时间,

詹姆士

0 投票
1 回答
908 浏览

java - Java CRC32 实现在 32Bit 和 64Bit 上是否不同

32Bit 和 64Bit JVM 上的 Java CRC32 实现有什么区别吗?我的问题是,我的客户端应用程序(在 32 位平台上)计算散列并将其与 64 位服务器应用程序计算的散列进行比较。有时(并非总是)我得到不同的结果。

有谁知道是什么问题?

提前致谢!

0 投票
1 回答
5268 浏览

linux - 如何在 Linux 命令行中计算 SFV 样式的 CRC32?

Linux 中是否有等效于 md5sum/sha1sum 的计算 SFV 样式的 CRC32?我检查了 cksum,但它似乎在计算不同的总和(可能是不同的多项式?或者我将 cksum 的输出解释错误)。最好不要使用 cfv/cksfv(这两个似乎都已被弃用,而且我不希望每次我想计算这个时都下载/编译一个不太新的工具。

此外,出于与上述相同的原因,我自己不希望自己在 C/C++/Java 中进行手动编码(即不希望亲自实现 CRC32)。

如果有人确切知道 SFV 使用的是哪个 CRC32 多项式(IEEE、Castagnoli、非 CRC Adler 等),那也是一个很好的开始。

无论如何,提前非常感谢!

编辑:似乎不是阿德勒,它基于一个 Windows 散列工具,它实现了 Adler32 和它只标记“CRC32”的东西。