信息:使用带盐的 SHA-512。
我正在对一些敏感值进行哈希处理以支持搜索机制,因为在运行时解密这些值将非常耗时。
目前,情况看起来不错。我将原始值的哈希值存储在数据库中,并使用定义的盐进行哈希处理。每当用户尝试使用搜索参数进行搜索时,输入值都会使用相同的盐进行哈希处理,我只需匹配两个哈希值即可。我的工作就足够了。
但现在,我想提供部分搜索。因此,如果我存储了“Hello”、“Hi”、“Howdy”的哈希值,并且如果用户输入“H”,则应该匹配并检索所有三个值。
是否可以获得此功能?
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
如果我理解正确的话,那是不可能的。
让我澄清和解释一下:您想知道是否可以通过在搜索字段中插入 H 来知道该哈希值是否与“Hi, Howdy, Hello”的哈希值相关。正确的?
如果是这种情况,由于安全哈希函数的特性,单个输入的变化不可能显着改变整个结果哈希值。
这种特性称为原像抗性。
有关哈希的更多信息,例如 here
关于java - 是否可以通过提供部分搜索机制来检索哈希值的原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870256/