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

javascript - 小字符串的快速开源校验和

对于小字符串(20-500 个字符),我需要一个快速校验和(尽可能快)。

我需要源代码,而且一定很小!(最大约 100 LOC)

如果它可以在 Base32/64 中生成字符串。(或类似的东西)这将是完美的。基本上校验和不能使用任何“坏”字符..你知道..通常的 (){}[].,;:/+-\| ETC

澄清

它可能是强/弱,这并不重要,因为它仅用于幕后目的。

它不需要包含原始字符串的所有数据,因为我只会与生成的校验和进行比较,我不希望有任何类型的“解密”。

0 投票
2 回答
1130 浏览

c# - 没有已知校验和的 Mono/.Net 的 Zlib

我需要实现一个特殊的 ZLib 实现,它应该在 .Net 和 Mono 下运行。数据/字符串消息是通过套接字接收的,因此缺少校验和。这是关于原始字符串数据,而不是文件。

我曾尝试使用 GZipStream 和 DeflateStream 解压缩数据,但我认为 GZStream 由于缺少校验和而失败。我也尝试了各种偏移,但没有运气。不使用校验和,因为无论如何都是通过套接字接收数据 - 因此 ZLib 校验和将是额外的开销。我是否遗漏了什么,或者您能解释一下如何添加校验和并调用正确的库,还是我应该查看支持 Mono 和 .Net 的第 3 方库?编辑:性能非常关键,因为这至少每秒完成一次。最后你会推荐我通过 Interop 使用 C-Lib 吗?我现在总是收到无效数据异常,我认为它与错误的校验和有关。这是我尝试使用但没有成功的实际代码:

0 投票
4 回答
6122 浏览

c++ - 校验和计算

为了计算 CRC,我找到了一段代码,但我不理解这个概念。这是代码:

请任何机构解释并告诉我逻辑。

0 投票
7 回答
8646 浏览

encryption - 创建一个小(<10 位)而不是(非常)安全的“哈希”的想法

我正在开发一个在线活动票务系统,用户将能够自行打印他的门票并出现在将被扫描(条形码)的活动中,理想情况下该人将进入。我的问题是如何创建一个满足以下要求的“机票代码”:

  • 每个“票号”需要彼此充分不同(即不按顺序编号)
  • 理想情况下,票证将根据中央数据库进行检查以防止重用,但它也需要能够离线工作,在这种情况下,系统必须检查“有效”票证代码并且它尚未用于门。
  • “票证代码”必须足够小,以便在需要时方便键入
  • 持票人只需要门票即可进入(即无需身份检查)

数据的范围非常小,4 天内只有大约 20 个活动,每个活动大约 5,000 张门票(大约 100,000 个不同的门票代码)

现在我有几个字段没有打印在票上并且用户不知道我可以用来编码部分“票代码”,所以我可以使用 EventId、OrderId、EventDate 和一些盐来创建一个小的“ hash" 用于部分代码(想法?),但我仍然坚持使用顺序的票证 ID 或 GUID(会太长)

那么关于如何做到这一点的任何想法或指示?

0 投票
5 回答
3129 浏览

perl - 我可以使用 Perl 获取目录的 MD5sum 吗?

我正在编写一个使用 File::Find 来索引网络文件系统的 Perl 脚本(在 Windows 中)。它工作得很好,但是爬取文件系统需要很长时间。我认为在遍历目录之前以某种方式获取目录的校验和会很好,并且校验和与之前运行的校验和相匹配,不要遍历目录。这将消除大量处理,因为此文件系统上的文件不会经常更改。

在我的 AIX 机器上,我使用以下命令:

它返回如下内容:

该命令花费的时间很少:

我已经在 CPAN 中搜索了可以执行此操作的模块,但看起来所有模块都会为我提供目录中每个文件的 MD5sum,而不是目录本身。

有没有办法在 Perl 中获取目录的 MD5sum,甚至在 Windows 中,因为我可以从 Perl 调用 Win32 命令?

提前致谢!

0 投票
6 回答
5331 浏览

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

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

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

0 投票
8 回答
20211 浏览

iphone - 在 iPhone OS 中加密 SQLite 数据库文件

iPhone 上的任何 SQLite 数据库都只是一个与应用程序捆绑在一起的文件。任何人提取此文件并查询它都相对简单。

您对加密文件或存储在数据库中的数据有什么建议。

编辑:该应用程序是一款将与其他用户对战的游戏。有关用户相对优势和劣势的信息将存储在数据库中。我不希望用户能够越狱手机以提高他们的声誉/权力等,然后赢得锦标赛/联赛等(注意:由于这个想法处于 NDA 之下,所以试图含糊其辞)。

我不需要军事加密,我只是不想以纯文本形式存储东西。

编辑2:再澄清一点,我的主要目标是

  1. 让破解敏感数据变得轻而易举
  2. 有一种简单的方法来发现数据是否已被更改(某种校验和)
0 投票
3 回答
5907 浏览

python - 有没有办法在python中添加两个字节溢出?

我正在使用 pySerial 从连接的设备中读取数据。我想计算每个接收到的数据包的校验和。数据包作为 char 数组读入,实际校验和是数据包末尾的最后一个字节。为了计算校验和,我通常会对数据包有效负载求和,然后将其与实际校验和进行比较。

通常在像 C 这样的语言中,我们会期望溢出,因为校验和本身只有一个字节。我不确定python的内部结构,但根据我对语言的经验,它看起来会默认为更大的变量(可能是一些内部的 bigInt 类或其他东西)。无论如何,在不编写我自己的实现的情况下,是否可以模仿添加两个字符的预期行为?谢谢。

0 投票
1 回答
930 浏览

file - 更改固件内的文件需要新的校验和

我有一个要更改的相框的固件文件。此更改的目的是使设备在启动期间显示自定义图像。

我已经设法用我自己的自定义文件切换现有的 JPEG 文件,但是无法用这个新的固件文件刷新设备。设备抱怨校验和无效,这似乎是正确的,因为我没有重新计算它。

有关如何继续进行此操作的任何提示?我试过在文件中查找校验和,但到目前为止我还没有成功。

一个 zip 文件中的原始未更改和自定义更改固件

0 投票
5 回答
7486 浏览

sql - SQL Server 2005 中的 CHECKSUM() 冲突

我有一个包含 5,651,744 行的表,主键由 6 列(int x 3、smallint、varchar(39)、varchar(2))组成。我希望使用此表和另一个共享此主键的表以及添加的附加列但有 37m 行来提高性能。

为了添加一列来创建哈希键,我进行了分析,发现了 18,733 个冲突。

这大约是坏的两倍BINARY_CHECKSUM()

考虑到我覆盖的目标空间相对较小,这是否看起来太高(0.33%)?如果冲突如此之高,那么在连接中首先加入这个制造的密钥是否有好处,因为您仍然必须加入常规列以处理偶尔的冲突?