我不知道该怎么称呼它,这是我能想到的最接近的东西
我正在寻找的是一个函数,它接受一个字符串数组并返回一个哈希字符串,如下所示
const inputs = [str_1, str_2 ...... str_n]
const hash = generate_hash(inputs)
然后另一个函数接受 2 个参数,即先前生成的哈希值和随机字符串,如果提供的字符串是用于生成哈希值的输入数组的成员,则返回 true 或 false
const random_str = "random"
const is_in_inputs = check_str(hash, random_str)
这甚至可能是具有多个密钥的加密算法,并且只有这些密钥才能解密加密的字符串
我不关心安全之类的事情,我只想要能完成工作的东西
如果这样的事情已经存在,那么请为我指明正确的方向,如果不存在,请告诉我如何实现它
您正在寻找的东西称为“布隆过滤器”。它永远不会返回误报(即,如果它说“随机”不在哈希中,则它不是),但我可以返回误报。 所有执行此操作的固定大小结构都将是概率性的。他们要么出现误报,要么出现误报。 (您可以在没有误报的情况下获得误报
只需将其设置为缓存而不是散列。)使其完全确定性(没有错误结果)的唯一方法是让它无限制地增长。最明显的实现是让 generate_hash
明确编码所有元素(例如序列化为长度值),然后对结果进行 gzip。但这不再是“哈希”。这只是一种编码。