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

c++ - 字符串的散列具有特定长度

有没有办法生成一个字符串的散列,以便散列本身具有特定的长度?我有一个生成 41 字节哈希 (SHA-1) 的函数,但我需要它最大为 33 字节(由于某些硬件限制)。如果我将 41 字节的散列截断为 33,我可能(当然!)会失去唯一性。

或者实际上,如果我能在您的帮助下找到一些 C 代码,我认为 MD5 算法会很合适。

编辑:谢谢大家的快速和知识渊博的回应。我选择使用 MD5 哈希,它非常适合我的目的。唯一性是一个重要问题,但我不希望这些哈希的数量在任何给定时间都很大 - 这些哈希代表家庭 LAN 上的软件服务器,因此最多会有 5 个,也许 10 个正在运行。

0 投票
8 回答
25730 浏览

ruby - 如何从 Ruby 中的哈希数组中获取唯一元素?

我有一个哈希数组,我想要其中的唯一值。打电话Array.uniq给我的不是我所期望的。

我期望的地方:

在网上四处搜索,我没有想出一个我满意的解决方案。人们建议重新定义Hash.eql?and Hash.hash,因为那Array.uniq是查询的内容。

编辑:我在现实世界中遇到这个问题时,哈希值稍微复杂一些。它们是具有多个字段的解析 JSON 的结果,其中一些值也是哈希值。我有一系列想要过滤掉唯一值的结果。

我不喜欢重新定义Hash.eql?Hash.hash解决方案,因为我要么必须Hash全局重新定义,要么为数组中的每个条目重新定义它。更改Hash每个条目的定义会很麻烦,特别是因为每个条目内部可能有嵌套的哈希值。

全球变化Hash具有一定的潜力,特别是如果它是暂时完成的。我想构建另一个类或辅助函数来包装保存旧定义并恢复它们,但我认为这增加了比实际需要更多的复杂性。

使用inject似乎是重新定义Hash.

0 投票
4 回答
4511 浏览

hash - 当今常用的最强哈希算法是什么?

我正在构建一个 Web 应用程序,并希望对密码使用最强的哈希算法。sha512、whirlpool、ripemd160 和tiger192,4 之间有什么区别(如果有的话)?哪一个会被认为在密码学上更强大?

0 投票
5 回答
74760 浏览

encryption - 用户密码盐的最佳长度是多少?

在对用户密码进行加盐和散列处理时,任何加盐显然都会有所帮助。盐应该放多长时间有什么最佳做法吗?我会将盐存储在我的用户表中,因此我希望在存储大小和安全性之间进行最佳权衡。随机的 10 个字符的盐是否足够?还是我需要更长的时间?

0 投票
11 回答
26143 浏览

encryption - 混淆、散列和加密有什么区别?

混淆、散列和加密有什么区别?

以下是我的理解:

  • 散列是一种单向算法;无法逆转
  • 混淆类似于加密,但不需要任何“秘密”来理解(ROT13 就是一个例子)
  • 加密是可逆的,但这样做需要“秘密”
0 投票
6 回答
4270 浏览

.net - 为什么我的 .net 计算的 MD5 哈希值不等于在网站上计算的哈希值?

我正在尝试在 JavaScript 和 .Net 中生成等效的 MD5 哈希。也没有这样做,我决定使用第三方计算 - 这个网站的“密码”一词。我稍后会添加盐,但目前,我无法让 .net 版本与网站的哈希匹配:

我猜这是一个编码问题,但我已经尝试了大约 8 种不同的方法来计算 .Net 中的 MD5 哈希,但没有一个与我在 JavaScript(或从网站)中获得的结果相匹配。这个MSDN 示例是我尝试过的方法之一,它产生了我通常收到的这个哈希:

编辑:可悲的是,我不小心为两种不同的实现提供了不同的源字符串。埃布萨克。:-/ 仍然有兴趣听听您对后续行动的回答。

额外的问题:哪种编码/格式最适合在数据库中存储散列值?

0 投票
5 回答
44006 浏览

perl - 如何在 Perl 哈希表中存储多个值?

直到最近,我一直在使用相同的键将多个值存储到不同的哈希中,如下所示:

然后我可以参考$boss("Bob")$status("Bob")但如果每个键都有很多属性,这会变得笨拙,我不得不担心保持哈希同步。

有没有更好的方法在哈希中存储多个值?我可以将值存储为

然后用split拆解字符串,但一定有更优雅的方式。

0 投票
20 回答
237661 浏览

javascript - JavaScript中是否有任何类型的哈希码函数?

基本上,我正在尝试创建一个独特对象的对象,一个集合。我有一个绝妙的想法,就是使用带有对象作为属性名称的 JavaScript 对象。如,

这在一定程度上有效。它适用于字符串和数字,但对于其他对象,它们似乎都“散列”到相同的值并访问相同的属性。有什么方法可以为对象生成唯一的哈希值吗?字符串和数字是如何做到的,我可以覆盖相同的行为吗?

0 投票
5 回答
1033 浏览

windows - 非基于 SSL 的签名和加密的硬件加速

我正在从事一个进行大量散列、签名以及非对称和对称加密的项目。由于这些步骤对我们的性能和可用负载有重大影响,我想知道是否有基于硬件的解决方案来卸载工作。

我做了一些冲浪来找出答案,我能找到的唯一项目是专用于基于 SSL 的通信。我需要一个更通用的解决方案,无论它发生在哪里,我都可以加快签名和加密的速度。

是否可以调整这些基于 SSL 的解决方案(也许它只是营销,很容易在其他地方重复使用)?是否有一个很好的通用协处理器可以提供帮助?

我需要在基于 Windows Server 2008 的机器上使用它,但我会对任何平台上的解决方案感兴趣。

0 投票
8 回答
4912 浏览

hash - 哈希与数字 id

当创建一个 Web 应用程序以某种方式显示重复实体的唯一标识符(YouTube 上的视频,或像我这样的网站上的书籍部分)时,最好使用统一长度标识符,如哈希或唯一标识符数据库中项目的键(1、2、3 等)。

除了透露一些我认为无关紧要的关于你的应用程序内部的信息之外,为什么使用哈希比只使用唯一 ID 更好?

简而言之:哪个更适合用作公开显示的唯一标识符 - 哈希值或数据库中的唯一键?

编辑:我再次提出这个问题,因为 Dmitriy 提出了不将命名绑定到 db 特定属性的好处。这种束缚会阻止我将来优化​​/规范化数据库吗?

该平台使用 php/python 和 ISAM /w MySQL。