我一直在思考这个问题,作为一种思想实验来尝试理解一些哈希概念。考虑需要一个128位哈希函数的要求(即其输出长度恰好为128位)。
A. 您可能会考虑使用MD5之类的东西。因此,您将要哈希的数据输入,然后输出一个128位数字。
B. 或者,您可以找到一个神奇的伪随机数生成器(PRNG)。某种弗兰肯斯坦版本的扭曲者。它从要哈希的所有输入数据中获取种子,并具有内部状态大小>>128位。然后,您生成128个伪随机位作为输出。
在我看来,A和B都有效地产生仅由输入数据确定的输出。因此,这两种方法是否等效?
补充:
一些反馈表明,我的情景可能存在安全不等式。如果伪随机数生成器是像Java的SecureRandom(使用SHA-1)这样的东西,则从输入数据进行种子处理,那么A <=> B吗?
A. 您可能会考虑使用MD5之类的东西。因此,您将要哈希的数据输入,然后输出一个128位数字。
B. 或者,您可以找到一个神奇的伪随机数生成器(PRNG)。某种弗兰肯斯坦版本的扭曲者。它从要哈希的所有输入数据中获取种子,并具有内部状态大小>>128位。然后,您生成128个伪随机位作为输出。
在我看来,A和B都有效地产生仅由输入数据确定的输出。因此,这两种方法是否等效?
补充:
一些反馈表明,我的情景可能存在安全不等式。如果伪随机数生成器是像Java的SecureRandom(使用SHA-1)这样的东西,则从输入数据进行种子处理,那么A <=> B吗?