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

标签 java search hash sha512

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

我正在对一些敏感值进行哈希处理以支持搜索机制,因为在运行时解密这些值将非常耗时。

目前,情况看起来不错。我将原始值的哈希值存储在数据库中,并使用定义的盐进行哈希处理。每当用户尝试使用搜索参数进行搜索时,输入值都会使用相同的盐进行哈希处理,我只需匹配两个哈希值即可。我的工作就足够了。

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

是否可以获得此功能?

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

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

让我澄清和解释一下:您想知道是否可以通过在搜索字段中插入 H 来知道该哈希值是否与“Hi, Howdy, Hello”的哈希值相关。正确的?

如果是这种情况,由于安全哈希函数的特性,单个输入的变化不可能显着改变整个结果哈希值。

这种特性称为原像抗性。

有关哈希的更多信息,例如 here

关于java - 是否可以通过提供部分搜索机制来检索哈希值的原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870256/

相关文章:

java - 公共(public)数学微分结果为0

带有 Swing UI 的 Java 线程

java - 二进制搜索程序将编译并运行但不会完成并且不会终止?

java - 如何为以下内容实现哈希

java - 如何知道表是否是mysql中的父表

java - Java 应用程序内存不足错误

php - yii2 漂亮的 url 破坏了 GridView 中的搜索

PHP MYSQL 多个表搜索相同关键字

ruby - 哈希 has_key?句法

ruby - 向 Ruby 的最后一个参数魔术哈希添加一个非文字哈希元素?