问题标签 [hash]

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 投票
4 回答
6497 浏览

algorithm - 散列数字向量的方法?

是否有任何已知的哈希算法可以输入一个 int 向量并输出一个与内积类似的单个 int?

换句话说,我正在考虑在 C++ 中可能看起来像这样的哈希算法:

我对此感兴趣,因为我正在写一篇关于算法的论文,该算法将受益于以前关于类似哈希的任何工作。特别是,如果对这样的哈希算法的冲突属性有任何了解,那就太好了。

我感兴趣的算法将散列整数向量,但浮点向量的一些东西也很酷。

澄清

哈希旨在用于哈希表中以进行快速键/值查找。这里没有安全问题。

所需的答案类似于一组常数,可证明对于这样的哈希特别有效 - 类似于乘数和模数,它比其他作为伪随机数生成器的效果更好。

例如,已知线性同余伪随机发生器的一些常数选择可提供最佳周期长度并具有易于计算的模数。也许有人做过研究,表明向量散列中的一组乘法常数以及一个模常数可以减少附近整数向量之间发生冲突的机会。

0 投票
6 回答
19626 浏览

java - 为哈希选择合适的表大小

如果我有一个 1000 的键集,我的哈希表的合适大小是多少,这是如何确定的?

0 投票
6 回答
17650 浏览

c# - 更快的 MD5 替代方案?

我正在开发一个在整个驱动器中搜索给定文件的程序。目前,我计算已知文件的 MD5 哈希值,然后递归扫描所有文件,寻找匹配项。

唯一的问题是 MD5 在处理大文件时速度非常慢。是否有更快的替代方案可以使用,同时保留非常小的误报概率?

所有代码都在 C# 中。

谢谢你。

更新

我读过甚至 MD5 也可以很快,磁盘 I/O 应该是限制因素。这让我相信我的代码可能不是最优的。这种方法有什么问题吗?

0 投票
5 回答
3105 浏览

hash - 这个 Base64 Look-alike 是什么?

我是解码技术的新手,昨天刚刚了解了 base64、sha-1、md5 和其他一些技术。

我一直试图弄清楚“orkut”蠕虫实际上包含什么。

在过去的几天里,我受到了许多 orkut 垃圾邮件发送者和黑客的攻击,他们发送给我们的 URL 有相似之处。

我不知道它包含什么信息,但我需要弄清楚。

问题在于以下文本:

上面的编码似乎是 base64 但不是,因为每当我尝试使用在线 base64 解码器对其进行解码时,我都会得到原始输出并且它不能准确解码。

也许其他一些代码已经与 base64 混合在一起。

谁能帮我解码?

0 投票
7 回答
3471 浏览

php - 输出长度很长的 PHP 哈希函数?

在我的代码中,我正在生成 URL 的散列(实际上是无限长度的)。我目前正在使用 sha1(),我知道它发生冲突的可能性很小,但是我有多达 255 个字节来存储哈希,所以我觉得我不妨利用可用空间来降低冲突的可能性更远。

是否有:

  1. 另一个具有更长或可自定义哈希长度的 PHP 哈希函数?
  2. 使用带有可变长度输入的 sha1 等固定长度哈希函数来生成更长哈希的方法?

或者,sha1 的 20 字节散列对任何事情都足够好,我应该停止担心它吗?

0 投票
11 回答
17849 浏览

database-design - 哈希碰撞 - 有什么机会?

我在我的 PHP 驱动的网站上有一些代码,它创建了一个随机散列(使用sha1()),我用它来匹配数据库中的记录。

发生碰撞的可能性有多大?我应该生成哈希,然后首先检查它是否在数据库中(我宁愿避免额外的查询)还是自动插入它,基于它可能不会与另一个发生冲突的概率。

0 投票
13 回答
162562 浏览

java - 为什么 Java 的 String 中的 hashCode() 使用 31 作为乘数?

根据 Java 文档,对象的哈希码String计算为:

使用int算术运算,其中s[i]是字符串的第 i个字符,是字符串n的长度,^表示取幂。

为什么用 31 作为乘数?

我知道乘数应该是一个相对较大的素数。那么为什么不是 29、37 甚至 97 呢?

0 投票
2 回答
6013 浏览

hash - 计算文件哈希的最快方法?

很多文件将存储在数据库中,我需要文件哈希来唯一标识文件未更改。(一般情况下,会用作 Windows 个人防火墙的一部分)

0 投票
9 回答
863 浏览

encryption - 创建不可修改的文件

我希望能够创建一个文件,将其分发给最终用户,但阻止他们对文件进行修改。

现在,显然,我实际上无法阻止任何人修改文件 - 所以我的方法是检测并拒绝文件是否被修改。

我的意图是生成文件内容的加盐哈希并将其附加到文件中。读取时,在读取文件的其余部分之前验证哈希。这样做的缺点是我必须在读取文件的可执行文件中分发固定的“盐”。显然我可以在某种程度上混淆它,但这仍然感觉像是一个薄弱环节。

有没有更好的方法来解决这类问题?

0 投票
4 回答
11193 浏览

perl - 如何使哈希键查找不区分大小写?

显然,哈希键是以区分大小写的方式进行比较的。

是否有设置可以更改当前脚本的设置?