好的,这是用例。我有很多有点长(200-500 个字符)的字符串,我希望有一个较小的确定性哈希值。由于我可以将完整的 160 位 SHA1 值存储在 20 个字节中,因此每个字符串的空间改进了一个数量级。
但当然,即使使用具有良好雪崩效应的加密哈希,也必须担心字符串上的哈希冲突。我知道机会很小,但我想更保守一些。如果我做这样的事情:
哈希(输入)= CONCAT(HF1(输入),HF2(输入))
其中HF1
是一些合适的鲁棒散列 f() 并且HF2
是另一个不同但鲁棒的散列 f()。这是否有效地使发生冲突的机会几乎不可能(现在以 40 个字节而不是 20 个字节为代价)?注意:我不关心 SHA-1 对我的用例的安全/加密影响。
澄清:最初的问题是关于对连接的哈希值进行哈希处理,而不是连接哈希,它不会改变外部哈希函数的哈希冲突概率。