我们可以重复对输入进行哈希运算并无限期地对其进行哈希运算吗?

Can we repeatedly hash an input and hash it indefinitely?

只是想知道如果给我们一个输入字符串 x 并且我们用函数 f 对其进行散列以获得 f(x) 我们可以无限期地重复这个过程即 f(f(x)) 等等。因为大多数哈希函数会生成与输入不同的固定输出。 那么在这个前提下,我们是否能够无限期地执行此操作?我能想到的一个可能的问题是它必须是固定长度并且通常哈希比输入短? 如果我错了,请纠正我。想要一个解释!

是的,您绝对可以对先前的哈希输出进行哈希处理。

当我们使用加密密钥执行此操作时,它被称为棘轮。

散列算法的输出大小将决定在发生冲突之前可以重新散列多少输出。

因此,对于 256 位哈希函数,我们将在 2^128 次哈希调用后以 50% 的概率看到冲突。