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

.net - 如何计算字符串的 CRC32

如何计算 .NET 中字符串的 CRC32(循环冗余校验和)?

0 投票
9 回答
136053 浏览

c++ - CRC32 C 或 C++ 实现

我正在寻找 C 或 C++ 中的 CRC32 实现,该实现被明确许可为免费或公共领域。这里的实现看起来不错,但它对许可证的唯一说明是“源代码”,这还不够好。我更喜欢非 LGPL,这样我就不必胡闹 DLL(我的应用程序是封闭源代码的)。我在 zlib 中看到了 adler32 的实现,但我正在检查一小块数据,adler 不适合。

0 投票
4 回答
8249 浏览

c# - 为什么 C# 中的这个 CRC32 实现这么慢?

我正在使用以下函数来计算 VS2008、.NET 3.5 项目中文件的 CRC32:

为简洁起见,我省略了构建查找表 (_crc32Table) 的函数。该表是一个 UInt32 的数组,在类实例化时构建,包含 256 个值(256 也是 _LOOKUP_TABLE_MAX_INDEX + 1 的值)。

我已经运行了一些基准测试,将其与 MD5CryptoServiceProvider 和 SHA1CryptoServiceProvider ComputeHash 函数进行比较,它们的速度要快得多。MD5 函数的速度是原来的两倍多,而 SHA1 哈希则快了大约 35%。有人告诉我 CRC32 很快,但这不是我所看到的。

我的假设有误吗?这是意料之中的还是这个算法有缺陷?

0 投票
1 回答
2144 浏览

crc - 什么是运行中的 CRC?

我已经搜索过,但无法找到有关它是什么以及如何计算的信息。


我不知道为什么这个问题被否决了。是不是很清楚和编程有关?或者我应该问:

这里到底发生了什么?

0 投票
3 回答
18243 浏览

java - 如何在 Java 中创建未压缩的 Zip 存档

我正在使用 Java 的 Zip 实用程序包,想知道如何创建一个完全不压缩的 zip 文件。将级别设置为 0 无济于事。这是正确的吗?

另外,当我使用该STORED方法时,它会引发以下异常:

我可以设置大小,但现在抛出以下异常:

我只是通过在网上搜索所有可用的示例,我想我无法真正理解它。如果有人可以在这方面帮助我并为我提供纠正我可能正在做的问题的建议,那就太好了。

0 投票
1 回答
1370 浏览

hash - 哈希函数组合 - 碰撞风险是否显着降低?

有谁知道通过组合散列函数来降低碰撞概率是否有真正的好处?我特别需要了解 32 位散列,即结合 Adler32 和 CRC32。 基本上,adler32(crc32(data)) 会产生比 crc32(data) 更小的碰撞概率吗?这里 的最后一条评论给出了一些有利于合并的测试结果,但没有提到来源。就我的目的而言,碰撞并不重要(即任务不涉及安全性),但如果可能的话,我宁愿尽量减少这种可能性。PS:我刚刚开始在散列的美妙世界中做很多关于它的阅读。抱歉,如果我问了一个愚蠢的问题,我什至还没有获得正确的“哈希方言”,可能我的谷歌搜索也很糟糕。谢谢。

0 投票
6 回答
3100 浏览

c# - CRC32 为网页制作短网址

我试图了解 crc32 以生成网页的唯一 url。

如果我们使用 crc32,为了避免重复,最多可以使用多少个 url?

保持校验和为 2^32 的近似字符串长度是多少?

当我尝试将 UUID 用于 url 并将 uuid 字节转换为 base 64 时,我可以减少到 22 个字符的长度。我不知道我可以进一步减少。

大多数情况下,我想将 url(最多 1024 个字符)转换为短 id。

0 投票
8 回答
1130 浏览

hash - 判断字符串/文件是否已更改的有效方法 - crc32?md5? 别的东西?

我正在寻找一种有效的方法来判断自上次查看字符串(或文件)以来是否发生了变化。

因此,我们针对 1,000,000 个文件/字符串(每个文件/字符串小于 1000 字节)运行此函数,并存储每个文件/字符串的输出。

然后,我将等待几天并再次运行它。我需要找出每个文件是否已更改...

我应该为每个文件计算 CRC32 吗?MD5?还有什么更高效的吗?

CRC32 是否足以告诉我文件/字符串是否已更改?

编辑它必须同时工作文件字符串,所以文件上的时间戳是不可能的。

0 投票
4 回答
35185 浏览

algorithm - 反转 CRC32

我正在寻找一种方法来反转CRC32 校验和。周围有一些解决方案,但它们要么写得不好,要么技术性很强,而且/或者在 Assembly 中。汇编(目前)超出了我的理解范围,所以我希望有人可以用更高级别的语言拼凑一个实现。Ruby 是理想的,但我可以解析 PHP、Python、C、Java 等。

有接盘侠吗?

0 投票
6 回答
16998 浏览

python - 在 python 中为大文件创建校验和的最快方法

我需要通过网络传输大文件,并且需要每小时为它们创建校验和。所以生成校验和的速度对我来说至关重要。

不知何故,我无法让 zlib.crc32 和 zlib.adler32 在 Windows XP Pro 64 位机器上处理大于 4GB 的文件。我怀疑我在这里达到了 32 位限制?使用 hashlib.md5 我可以得到一个结果,但问题是速度。为 4.8GB 文件生成一个 md5 大约需要 5 分钟。任务管理器显示该进程仅使用一个核心。

我的问题是:

  1. 有没有办法让 crc 在大文件上工作?我更喜欢使用 crc 而不是 md5
  2. 如果没有,那么有没有办法加快 md5.hexdigest()/md5.digest?或者在这种情况下任何hashlib hexdigest/digest?也许将其拆分为多线程进程?我怎么做?

PS:我正在研究类似于“资产管理”系统的东西,有点像 svn,但资产由大型压缩图像文件组成。这些文件有微小的增量更改。检测更改和错误检测需要散列/校验和。