【发布时间】:2022-01-20 05:06:43
【问题描述】:
假设我们有一个哈希函数H,以及两个字节字符串a 和b(可能很长,例如几个 MiB 大小,所以我们希望避免再次对它们进行哈希处理)。我们已经知道H(a)和H(b)的值,想计算H(a ++ b)(两个字符串拼接在一起的哈希值)。
我们希望有一个函数F,它可以根据H(a)、H(b) 和a 和b 的任何其他属性计算H(a ++ b),我们可以预先计算(例如长度),以及比仅对整个字符串进行哈希处理花费更少的时间。
哈希函数H 不需要是加密的,但对于 HashMap 或类似用途来说应该足够好。
H 和 F 这样的函数是否存在?或者如果我想知道,我应该搜索/研究什么?
【问题讨论】:
-
通常
H(a ++ b) == xor(H(a), H(b))就足够了。