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

security - 我应该使用什么算法将密码散列到我的数据库中?

有没有什么东西是不容易破碎的?

0 投票
3 回答
112663 浏览

excel - Excel VBA的密码哈希函数

我需要一个用 Excel VBA 编写的函数,该函数将使用 SHA-1 等标准算法对密码进行哈希处理。具有简单界面的东西,例如:

该功能需要在安装了 Excel 2003 的 XP 工作站上运行,否则不得使用第三方组件。它可以引用和使用 XP 提供的 DLL,例如 CryptoAPI。

有谁知道实现此散列功能的示例?

0 投票
4 回答
1342 浏览

.net - Enterprise Library HashProvider 中的盐是什么?(SaltEnabled 键)

当我们设置 SaltEnabled 时,Microsoft Enterprise Library 的 HashProvider 中如何生成 salt?

新机器是随机的吗?这是一个神奇的数字吗?

(我知道什么是盐,问题是企业库 HashProvider 中的盐的实际值是多少)

0 投票
5 回答
990 浏览

algorithm - 最多 255 个字符的字符串的非冲突哈希算法

我正在寻找一种哈希算法,以创建尽可能接近字符串的唯一哈希(max len = 255),从而产生一个长整数(DWORD)。

我意识到26^255 >> 2^32,但也知道英语单词的数量远少于2^32。

我需要“散列”的字符串主要是单个单词或使用两个或三个单词的简单构造。


答案

FNV 变体之一应满足您的要求。它们速度很快,并且产生相当均匀分布的输出。(由Arachnid回答)


0 投票
7 回答
1797 浏览

java - 如何从对象的地址计算 hashCode()?

在 Java 中,我有一个VertexJava3D 类的子类Point3f。现在根据其坐标值进行Point3f计算,但对于我的类,我想更严格:两个顶点只有在它们是同一个对象时才相等。到现在为止还挺好:equals()Vertex

我知道这违反了 的合同equals(),但是因为我只会将顶点与其他顶点进行比较,所以这不是问题。

现在,为了能够将顶点放入 aHashMap中,该hashCode()方法必须返回与 一致的结果equals()。它目前是这样做的,但它的返回值可能基于 的字段Point3f,因此会为Vertex具有相同坐标的不同对象提供哈希冲突。

因此,我想基于对象的地址,而不是从的字段hashCode()中计算它。Vertex我知道这个Object类是这样做的,但我不能调用它的hashCode()方法,因为Point3f它会覆盖它。

所以,实际上我的问题是双重的:

  • 我什至要这么浅equals()
  • 如果是,那么,我如何获取对象的地址来计算哈希码?

编辑:我只是想到了一些东西......我可以int在对象创建时生成一个随机值,并将其用于哈希码。这是一个好主意吗?为什么不)?

0 投票
7 回答
27159 浏览

hash - GUID 的哈希值是否唯一?

我创建一个 GUID(作为字符串)并获取它的哈希值。我可以认为这个哈希是唯一的吗?

0 投票
12 回答
270167 浏览

.net - HashSet 与 List 性能

很明显,泛型类的搜索性能HashSet<T>高于泛型List<T>类。只需将基于散列的键与List<T>类中的线性方法进行比较。

然而,计算哈希键本身可能需要一些 CPU 周期,因此对于少量项目,线性搜索可以真正替代HashSet<T>.

我的问题:盈亏平衡点在哪里?

为了简化场景(公平起见),让我们假设List<T>该类使用元素的Equals()方法来标识一个项目。

0 投票
9 回答
2800 浏览

perl - 为什么在 Perl 中访问数组和哈希元素时需要 $?

既然在 Perl 中数组和散列只能包含标量,为什么在访问数组或散列元素时必须使用 $ 告诉解释器该值是标量?换句话说,假设你有一个 array@myarray和一个 hash %myhash,你为什么需要这样做:

而不仅仅是做:

为什么上面有歧义?

如果在那个地方不是 $ 的话,那不是非法的 Perl 代码吗?例如,在 Perl 中,以下所有内容不都是非法的吗?

0 投票
9 回答
706 浏览

c# - 散列敏感数据

我需要打乱我们拥有的 UAT 数据库中所有用户的名称和登录名。(由于数据保护法)

但是,有一个问题。

测试人员仍然需要能够使用散列登录名登录

因此,如果用户登录名是“Jesse.J.James”,那么哈希应该类似于

Ypois.X.Qasdf

即大致相同的长度,点在同一个地方

因此 MD5、sha1 等将不适合,因为它们会创建非常长的字符串,并且还会添加自己的特殊字符,例如 + 和 =,验证正则表达式不允许使用这些字符。

所以我正在寻找一些关于如何实现这一目标的建议

我想我需要推出自己的哈希算法

有人做过类似的事情吗?

我正在使用 c# 但我想这对算法并不那么重要

多谢

添加 -

感谢所有的答案。我认为我有责任在不需要做的时候使用“哈希”这个词来造成混乱

0 投票
6 回答
336786 浏览

sql-server - 如何从 SQL Server 解密密码?

我在 sql server 2000 中有这个查询:

它输出一个加密的“AAAA”字符串:

如何转换(解密)来自其来源(即“AAAA”)的输出?