问题标签 [adler32]

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 投票
5 回答
630 浏览

algorithm - 消息代码验证算法

如果你以前读过这个帖子——忘记我写的一切,我写它的时候一定是喝醉了。我重新开始:

我目前正在做一个项目,我们将使用某种算法来验证用户输入。需要考虑三个方面;

客户 - 浏览我们的网页

公司 - 我们,处理客户的请求

第 3 方公司 - 处理客户消息

在我们的网页上,我们将向客户展示有关产品的一些信息。如果他/她想了解有关产品的更多信息,他必须联系第 3 方公司并说明产品代码(本身不是唯一的,但也不常见)。作为回报,客户将收到来自第三方公司的一些其他代码,他应该在我们的网页上输入这些代码,我们将在其中验证代码以供批准。

如果我们公司与第三方公司没有任何互动,那就最好不过了。纯加密是不可能的,因为它会生成一个太长的字符串。我们通过 SMS 进行此操作,因此代码必须简短。

到目前为止我想出了什么:

对于每件产品,我都会在 base 16 (0-f) 中生成一个有点独特的代码(它是否唯一并不重要)。想要了解有关产品的更多信息的客户向第三方公司发送一条短信,说明产品代码。作为回报,客户端收到相同的代码,但数字被乘以(可能乘以 2)并转换为基数 36。除此之外,最后一个字符被添加到代码中,即控制号,以使代码对 Luhn 有效以 36 为基数的算法。用户输入收到的代码,我们公司在服务器端根据产品代码验证它(根据 Luhn 验证,除以 2 并切换回基数 16)。

这听起来相当安全和适当吗?当其中两个不需要通信时,它是由三方发送消息的有效方式吗?

很抱歉编辑,但当我写第一篇文章时,我的想法一定在别处。

0 投票
2 回答
1541 浏览

c++ - 给定文件名,如何使用 Crypto++ 获取 Adler32

给定一个“字符串文件名”,如何使用 C++ Crypto++ 库获取 Adler32 校验和。我对使用他们的 Source 和 Sink 系统有点困惑。

下面我有执行 MD5 的代码骨架,但我似乎找不到任何有关 Adler32 用法的示例或教程。


好的示例和示例代码在这里http://www.cryptopp.com/wiki/Category:所有 Crypto++ 的示例(除了我想要的 Adler32 东西)

0 投票
6 回答
5331 浏览

algorithm - 为什么在 Adler-32 校验和算法中取模 65521?

Adler-32 校验和算法以 65521 为模求和。我知道 65521 是适合 16 位的最大素数,但为什么在该算法中使用素数很重要?

(我敢肯定,一旦有人告诉我,答案似乎很明显,但我大脑中的数论部分无法正常工作。即使没有校验和算法方面的专业知识,也是一个阅读http://en.wikipedia的聪明人。 org/wiki/Fletcher%27s_checksum可能可以向我解释。)

0 投票
3 回答
4941 浏览

php - Php:如何计算 zip 的 Adler32 校验和?

我在服务器端使用了 Paul Duncans php ZipStream ( http://pablotron.org/software/zipstream-php/ ) 的组合,用于即时创建 zip 和 Fzip ( http://codeazur .com.br/lab/fzip/ ) 在 Flex/Air 客户端。

在 Air 中运行良好,但在浏览器中运行 Flex 时,zip 需要在标头中包含 Adler32 校验和,以便读取 FZip。

如何计算 php 中 zip 的 Adler32 校验和?

ZipStream 核心函数使用 gzdeflate 进行压缩,如下所示。

问候/乔纳斯

0 投票
1 回答
1370 浏览

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

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

0 投票
5 回答
1561 浏览

php - 累积哈希

我之前在这里读过 SO(编辑: 增量校验和),有一些校验和算法(我认为其中一个是 adler32)支持以下属性:

请注意,结果只是展示我想要归档的示例。我已经在 PHP 中使用 adler 和 fletcher 模块尝试了一些带有哈希扩展的示例,但这些值似乎没有加起来。有人可以给我看一些实现示例吗?

0 投票
5 回答
20377 浏览

md5 - adler32 校验和的可靠性如何?

我想知道 adler32 校验和与 md5 校验和相比有多可靠?维基百科上告诉我们,adler32 比 md5“更不可靠”,所以我想知道多少,以及以何种方式?

更具体地说,我想知道它是否足够可靠,可以作为长期存档 20GB+ (tar)文件的一致性检查?

0 投票
1 回答
2264 浏览

checksum - 如何解决 Zlib adler32 滚动校验和问题?

我正在使用 zlib 中的 adler32 函数来计算一块内存 x(长度为 4096)的弱校验和。一切都很好,但是如果来自不同文件的块不匹配,现在我想执行滚动校验和。但是,我不确定如何编写一个函数来对 zlib 中 adler32 返回的值执行该操作。那么如果校验和不匹配,如何使用原始校验和 x + 1 字节和 x + 4096 + 1 计算滚动校验和?基本上试图构建 rsync 实现。

0 投票
2 回答
886 浏览

crypto++ - Crypto++ 将 Adler32 摘要(字节数组)转换为 uint32_t

我有以下问题:我正在尝试使用 计算数据块的 adler32 校验和Crypto++,但在将 byte[4] 数组输出转换为 uint32_t 后得到错误的校验和。

这个带有 crc32 的函数可以正常工作:

但计算 adler32 的函数返回无效值:

希望有人能给我一个提示。

问候费边

0 投票
5 回答
5088 浏览

python - adler32滚动校验和的计算差异 - python

在查看计算运行校验和时需要澄清。

假设我有这样的数据。

假设块大小为 5,我需要计算运行校验和。

根据 Python 文档(python 版本 2.7.2)

“计算数据的 Adler-32 校验和。(Adler-32 校验和几乎与 CRC32 一样可靠,但计算速度更快。)如果存在值,则将其用作校验和的起始值;否则,使用固定的默认值。这允许在多个输入的串联上计算运行校验和。

但是当我提供这样的东西时,

输出完全不同。

我尝试创建一个自定义函数来生成 rsync 算法中定义的滚动校验和。

这是我从运行这些函数中获得的值

如您所见,就价值而言,我的滚动校验和和 python 的实现存在巨大差异。

我在计算滚动校验和时哪里出错了?我是否正确使用了 python 的 adler32 函数的滚动属性?