问题标签 [checksum]

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

c - CRC计算

我正在尝试与第 3 方系统交互,他们提供了一个代码示例来在发送文本数据时计算 CRC 值。

供应商提供的 C 代码如下所示:

我已经复制了这段代码并放入了一个示例 C 程序。test_crc 方法没有计算 CRC 为 470f(它计算为 DD7A)。

我希望有人可以验证此代码是否像供应商所说的那样不起作用,或者帮助我让 test_crc 返回正确的值。

谢谢您的帮助。

0 投票
4 回答
6497 浏览

sql - 创建列的聚合校验和

我想计算汇总列的所有值的校验和。

换句话说,我想做一些等价的

这种方法的问题是:

  1. 这是低效的。在将列的所有值传递给 md5 函数之前,它必须将列的所有值作为字符串连接到某个临时存储中
  2. group_concat 的最大长度为 1024,之后其他所有内容都将被截断。

(如果您想知道,您可以确保值的连接顺序一致,但是,不管您信不信 group_concat() 接受其中的 order by 子句,例如group_concat(some_column order by some_column)

MySQL 提供了非标准的按位聚合函数 BIT_AND()、BIT_OR() 和 BIT_XOR(),我认为它们对这个问题很有用。在这种情况下,该列是数字的,但我很想知道是否有办法使用字符串列。

对于这个特定的应用程序,校验和不必是密码安全的。

0 投票
2 回答
214 浏览

language-agnostic - 如何获取跨步模式的校验和

我有一个 64 位数(但只使用了 42 个低位),并且需要计算 4 位的总和, 和注意nn+m任何可以产生总和 >4 的东西都是无效的)对于一些固定的 m 和将所有位放入数字中的 n 的每个值n+m*2n+m*3

作为一个例子,使用m=3并给出 16 位数字

我需要计算

有没有人有任何(很酷)的想法来做到这一点?我没问题。


我目前的想法是制作输入的位移副本以对齐要求和的值,然后构建一个逻辑树来执行 4x 1bit 加法器。

这最终会导致结果的位分布在 3 个不同的整数中,但是很好。

编辑:碰巧我需要总和的直方图,所以对 , 进行位计数,o4给我想要的。o2&o1o2o1


第二种解决方案使用完美的散列函数

这通过注意到 4 个选定位只能采用 16 种模式并且(通过猜测和检查)可以使用 mod 30 将它们散列为 0-15。从那里,一个计算值表给出了所需的总和。碰巧只有 4 步中的 3 步我需要以这种方式工作。


ps

正确胜过快速。快胜于清。我预计会运行数百万次。

0 投票
4 回答
2856 浏览

c# - 如何在运行时计算代码的校验和?

我有一个在机器上运行的 C#.NET 应用程序。如何在运行时计算整个代码的校验和?

笔记:

我不想计算正在使用的图像的校验和,而是实际的代码部分。

0 投票
3 回答
2035 浏览

python - 使用python的目录校验和?

因此,我正在进行基于 Web 的文件系统抽象层开发。就像文件浏览器一样,除了它有一些额外的功能,比如奇怪的权限等。

我希望以某种方式通知用户有关目录更改的信息。因此,即当有人通过 FTP 上传新文件时,某些用户应该会收到正确的消息。消息不需要特别详细,我真的不需要显示更改的确切资源。父目录名称应该足够了。

你会推荐什么方法?

0 投票
8 回答
492 浏览

checksum - 为什么各种项目的下载都有哈希码或校验和?

从 Internet 下载各种可执行文件或 zip 文件时,我从未使用过校验和。我知道它用于检查一致性并增加一些安全性。但是,当您从 Apache 或 Microsoft 等受人尊敬的项目下载时,是否有必要。我们中有多少人真正使用校验和或哈希码来验证内容?

仅供参考,如果我偏离 StackOverflow 可接受的内容太远,请告诉我。

0 投票
2 回答
436 浏览

hash - 防止欺诈性提交给记分牌

我正在开发 Flash 游戏的后端,我需要保护进入记分板的数据。

该游戏将在横幅广告中托管在许多网站上,用户将在广告中玩游戏,然后点击进入主站点以保存他们的详细信息。

目前我正在考虑这个问题

  1. 用户玩游戏并点击提交他们的分数
  2. 在后台,横幅将分数和原始域发送到主站点上的脚本。
  3. 脚本检查域是托管广告的有效域之一。
  4. 如果一切正常,脚本会创建此分数和域的哈希值,并将其与分数一起存储在数据库中。
  5. 该脚本将哈希返回给 Flash,Flash 将其拼凑到打开主记分板的 getURL 的查询字符串中
  6. 记分牌页面会检查引用者以确保它是有效域之一。
  7. 如果是,则检查数据库的哈希值是否是有效令牌
  8. 然后用户填写他们的详细信息并根据哈希更新记录

上次我检查 FLash 不发送推荐人信息时,这有点让我的计划陷入困境。那么,这种 Flash/Database 交互是否已经建立了模式?

我应该在第 4 步中使用哪种散列/校验和?这种操作的正确名称是什么,是哈希、校验和还是其他什么?

我知道作为一种客户端技术,Flash 永远不会真正那么安全,但在我看来,像上面这样的东西与你要破解这种应用程序一样困难。

更新:我的主要目标是让人们更难找到将分数添加到数据库的脚本的 URL,并简单地用虚假分数发送垃圾邮件。

谢谢,格雷格

0 投票
2 回答
272 浏览

c# - 为 Web 服务生成特定于客户端的验证码

我有一个面向外部的 Web 服务,但是我需要生成一个验证系统以确保请求来自有效的客户端。

假设原始 Web 服务定义如下:

我想确保请求实际上来自clientId参数指定的客户端。

我目前的计划是在方法签名中添加另一个参数,给出各种校验和。

我需要一个函数来验证校验和是否由批准​​的客户端计算。它应该根据reqNumberreqText参数以及客户端和服务器都知道的特定于客户端的“密码”来计算。

实际上,它应该是:

有人对这个散列函数或整个模型有什么建议吗?

它需要特定于消息、特定于客户端且难以猜测(高熵)。

0 投票
5 回答
630 浏览

algorithm - 消息代码验证算法

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

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

客户 - 浏览我们的网页

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

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

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

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

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

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

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

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

0 投票
1 回答
837 浏览

c++ - 如何在 C++ 中计算文件的 sha1sum?

我尝试了系统调用,但由于它不是最好的解决方案,我认为应该有其他计算校验和的方法。

是否有任何库或函数可以使用各种算法在 C++ 中计算文件的校验和?