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

perl - 如何更改哈希键的大小写?

我正在编写一个可能被用户修改的脚本。目前我将配置设置存储在脚本中。它以散列哈希的形式存在。

我想防止人们在哈希键中意外使用小写字符,因为这会破坏我的脚本。

检查哈希键很简单,只需对任何带有小写字符的键发出警告,但我宁愿自动修复区分大小写的问题。

换句话说,我想将顶级哈希中的所有哈希键都转换为大写。

0 投票
3 回答
279 浏览

algorithm - 概率文件验证——算法还是库?

我正在寻找一种有效的方法来部分检查慢速传输介质上“大型”数据集的完整性。这似乎是一个常见问题,因为文件大小与传输速率不成比例。

例如,对于具体数字,USB2 上的 TB 数据。通过将每个字节读入哈希或校验和来检查该数据是否仍然有效需要一天的时间,并且会增加驱动器故障的风险。

相反,此代码需要验证随机数据片段,并根据可用时间提供有效性概率。如果允许运行足够长的时间,将验证所有块(读取整个数据集的基本情况)。

用法“故事”:
-- 数据存储在大型加密容器中(大小为 1TB .. 1GB)。
-- 每个容器在不同位置的多组驱动器上冗余备份。
-- 验证检查必须在不了解基础数据或密钥的情况下进行。

该方法需要检测哪些故障模式:
- 存储传输故障(例如,控制器丢弃部分物理地址) - 扇区错误(没有为特定块返回数据)
- 单比特错误(非 ECC 内存或缓存)

当检测到错误时,数据将从冗余存储中恢复。验证数据可能必须单独存储。

由于目标是数据完整性,文件共享网络的技术似乎并不适用——“哈希树”需要在每个节点上完全存储哈希,这似乎比没有活动的场景所需的存储更多攻击者。

  • 如何确定存储空间与读取文件相关块的时间之间的权衡?
  • 如果散列树/散列列表是最好的方法,那么存储散列的部分值有多安全?
  • 某些校验和或纠错代码是否会比散列更好的选择来提供等效保护?
0 投票
4 回答
10683 浏览

sql-server - SQL Server 哈希索引

当使用 CHECKSUM 列类型人为创建哈希索引时,查找实际上是 O(1) 还是仍然像聚集索引一样 O(lg n)?我有一个表,我将根据它的 ID 列从中选择,我需要尽可能快的查找,那么聚集索引是最快的选项吗?我正在寻找能够提供 O(1) 性能的东西。

0 投票
5 回答
18755 浏览

hash - Visual Basic 6.0 哈希函数

在我的应用程序中,我需要在将字符串保存到文本文件之前对其进行哈希处理。有谁知道这是怎么做到的吗?

0 投票
9 回答
136103 浏览

security - 散列密码和加密密码之间的区别

当前对该问题的最高投票者指出:

另一个不是安全问题的问题,尽管它与安全相关,但完全无法理解散列密码和加密密码之间的区别。最常见于程序员试图提供不安全的“提醒我的密码”功能的代码中。

这个区别到底是什么?我一直认为散列是一种加密形式。张贴者所指的不安全功能是什么?

0 投票
16 回答
38057 浏览

hash - 为什么 MD5 哈希值不可逆?

我一直想知道的一个概念是加密哈希函数和值的使用。我知道这些函数可以生成一个唯一且几乎不可能反转的哈希值,但这是我一直想知道的:

如果在我的服务器上,我会在 PHP 中生成:

当您通过 MD5 函数运行相同的字符串时,您会在 PHP 安装中得到相同的结果。一个过程被用来从一些初始值产生一些价值。

这是否意味着有某种方法可以解构正在发生的事情并反转哈希值?

这些函数是什么使生成的字符串无法回溯?

0 投票
6 回答
2740 浏览

algorithm - 从名称和地址数据创建一个 id。哈希/摘要

我的问题:

我正在寻找一种将人的姓名和地址表示为编码 id 的方法。id 应仅包含字母数字字符,防冲突,并以尽可能少的字符数表示。我的第一个想法是简单地使用像 MD5 或 SHA1 这样的加密哈希函数,但这似乎有点矫枉过正(安全性并不重要 - 不需要是单向的),我更愿意找到能产生较短的身份证。有谁知道适合这个问题的现有算法?

换句话说,实现以下函数的最佳方法是什么,以使相同输入的返回值始终相同,不太可能发生冲突,并且 id 小于 20 个字符?

应用程序上下文(对于那些感兴趣的人):

这将用于记录链接应用程序。给定一个输入名称和地址,我们在一个非常大的数据库中搜索最佳匹配并返回数据库 id 和其他数据(我们如何做到这一点在这里并不重要)。如果没有匹配项,我需要从搜索输入(实体的名称和地址数据)生成这个伪/生成/派生的 id。每条搜索记录都应该产生一个输出记录,其中要么是真实的(匹配/链接产生的实际数据库 id),要么是这个生成的伪/生成/派生 id。伪 id 将以一个字符(例如 N)作为前缀,以将其与真实 id 区分开来。

0 投票
5 回答
5279 浏览

php - 在 MySQL 中使用什么函数来散列密码?

我的 mysql 数据库中有一个包含密码列的用户表。目前,我使用 MD5 算法对用户密码进行哈希处理以存储在数据库中。现在我喜欢认为我是一个有安全意识的人。我在阅读 MySQL 文档时注意到他们不推荐 MD5 或 SHA/SHA1 散列方法,但不提供替代方法。

在 MySQL 中散列密码的最佳方法是什么?在我当前的实现中,PHP 和 MySQL 原生支持的函数将是理想和必要的。

谢谢!

0 投票
8 回答
11973 浏览

algorithm - 检测两个图像在视觉上是否相同

有时两个图像文件在文件级别上可能不同,但人们会认为它们在感知上是相同的。鉴于此,现在假设您有一个庞大的图像数据库,并且您想知道人类是否会认为数据库中存在某些图像 X。如果所有图像都有一个感知哈希/指纹,那么可以对图像 X 进行哈希处理,查看它是否在数据库中将是一件简单的事情。

我知道围绕这个问题进行了研究,并且存在一些算法,但是是否有任何工具,例如 UNIX 命令行工具或库,我可以使用它来计算这样的哈希,而无需从头开始实施某些算法?

编辑:来自 findimagedupes 的相关代码,使用 ImageMagick

编辑:警告!ImageMagick $image 对象似乎包含有关读取的图像文件的创建时间的信息。这意味着即使对于同一图像,如果在不同时间检索到的 blob,您获得的 blob 也会有所不同。为确保指纹保持不变,请使用 $image->getImageSignature() 作为最后一步。

0 投票
4 回答
4266 浏览

ruby-on-rails - RoR:FasterCSV 散列

我真的很难掌握如何有效地使用 FasterCSV 来完成我想要的。

我有一个 CSV 文件;说:

我要通过这个文件并最终得到一个哈希值,该哈希值有一个计数器,用于记录第一列出现的次数。所以:

我需要能够在不事先了解第一列中的值的情况下执行此操作。

?