当前位置: 首页 > 知识库问答 >
问题:

是否可以通过提供部分搜索机制来检索哈希值的原始值?

越学文
2023-03-14

信息:使用含盐的SHA-512。

我正在散列一些敏感值以支持搜索机制,因为在运行时解密值会很耗时。

目前看来,情况不错。我将原始值的散列存储在DB中,并使用定义的salt进行散列。每当用户尝试使用search参数进行搜索时,输入值都会使用相同的salt进行散列,我只需匹配两个散列值。我的工作就够了。

但是现在,我想提供部分搜索。因此,如果我存储了“Hello”、“Hi”、“Howdy”的哈希值,并且如果用户输入“H”,则应该匹配并检索所有三个值。

有可能获得此功能吗?

任何帮助都将不胜感激。

谢谢

共有1个答案

潘佐
2023-03-14

如果我理解正确,那是不可能的。

让我澄清和解释一下:你想知道在搜索字段中插入H是否可以知道哈希是否与“Hi, Howdy, Hello”的哈希相关。对吗?

如果是这种情况,就不可能像安全哈希函数的特征那样,单个输入的变化会显着改变生成的哈希值的整体。

这种特性被称为图像前阻力。

例如,可以在此处找到有关哈希的更多信息

 类似资料:
  • 问题内容: 我有一个dynamodb表来存储电子邮件属性信息。我在电子邮件上有一个哈希键,在时间戳(数字)上有范围键。使用电子邮件作为哈希键的最初想法是按电子邮件查询所有电子邮件。但是我想做的一件事是检索所有电子邮件ID(在哈希键中)。我为此使用了boto,但不确定如何检索不同的电子邮件ID。 我当前提取10,000条电子邮件记录的代码是 但是要检索不同的记录,我将必须进行全表扫描,然后在代码中选

  • 我刚刚开始学习哈希表,我知道如何插入,但不知道如何搜索。以下是我将基于这个问题的算法: 散列密钥 线性探测碰撞分辨率。 假设我用键1、11和21调用两次插入。这将返回所有3个键的槽1。冲突解决后,表在槽1、2和3处将有值1、11和21。这就是我对插入的理解。 完成此操作后,如果搜索键11和21,我将如何获得插槽2和3?从我所读到的内容来看,搜索哈希表应该做与插入完全相同的事情,除非当你到达所需的插

  • 当人们说Hashmap比列表更快时,我对Hashmap或Hashtable的概念更困惑。我很清楚散列的概念,其中的值存储在给定密钥的散列代码中。 但是,当我想检索数据时,例如,它是如何工作的,我在一个HashMap中存储n个带有n个不同键的字符串。如果我想检索与特定键关联的特定值,它将如何在O(1)的时间内返回它?因为散列密钥将与所有其他密钥进行比较,对吗?

  • 使用Lucene libs,我需要对现有的搜索函数进行一些更改:假设以下对象: 名称:“端口对象1” 数据:"TCP(1)/1000-2000" 查询(或搜索文本)为“1142”,是否可以在数据字段内搜索“1142”并找到端口对象1,因为它指的是1000-2000之间的范围? 我只找到了数值范围查询,但这不适用于本例,因为我不知道范围。。。 参考以上代码。查询"1200"应该找到第一个doc。 L

  • 我刚刚在我的数据库上实现了弹性搜索,我对此非常陌生。我必须写查询-

  • 我希望有一个将字符串映射到类的哈希表。我尝试了类似的方法,但在所在的位置得到了“Expression expected”。 然后我希望能够做一些类似的事情