组合怎么样?说统计散列函数 h1 和加密散列函数 h2。
现在我们有 h1(h2(x)) 和 h2(h1(x))。两者中哪个更好,为什么?
在抗碰撞性方面,h1(h2(h3(...(x))) 并不比单个散列函数中最差的一个更好。例如,如果 h2(x)=0 而不管 x,h1(h2( h3(...(x))) 也会给出相同的哈希值,而不管 x 是什么。
在性能方面,出于显而易见的原因,h1(h2(h3(...(x))) 比单个散列函数中最差的要差。
我知道我没有回答你的问题,但你为什么想要这个组合?
分层散列函数将产生一个具有与最弱的散列函数一样弱的抗碰撞性的结果。如果您不了解所需的安全结果,如果您的目标是提高安全性,那么像这样分层散列函数通常不是好的做法。