多对一映射哈希函数

时间:2011-12-28 15:13:00

标签: hash one-to-many many-to-one hash-function

我不知道实际的数学术语(多对一的映射是我使用过的术语)

这是我的要求:

hash_code = hash_function(element 1, element 2, ...... element n)

我应该能够检索

bool b = is_valid_hash(hash_code, element x)

函数is_valid_hash应该能够告诉我天气'element x'是hash_function

中传递的元素

此类哈希函数的名称是什么?一个哈希应该能够映射到多个元素(而不是冲突)。

2 个答案:

答案 0 :(得分:1)

我在寻找的是:Bloom Filter

答案 1 :(得分:0)

假设hash_function是标准的散列算法(md5等),则无法完成。但是,如果它是自定义函数,您可以通过以下两种方式之一来完成:

  1. hash_function()可以散列每个元素,然后连接字符串(这会产生一个非常长的散列,在某些方面它会不那么安全,但它会起作用),然后你可以做一个子-string比较on_valid_hash()(查看散列元素x是否为hash_code的子字符串。

  2. 同样,hash_function可以返回一个哈希数组...如果你需要一个字符串或安全性是一个问题,你也可以返回一个双向加密的序列化数组...然后可以解密和反序列化在is_valid_hash()中你可以检查元素x哈希是否在数组中。