我阅读了以下代码:
dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum
显然,此代码被用作从 128 位二进制伪随机值生成十六进制字符串密钥的技巧。
这里有人声称这本质上是不安全的,因为它通过“不安全的哈希函数”传递加密安全的随机值。
就我而言,我想说 md5 中的碰撞缺陷在这里无关紧要,因为散列函数输入和输出具有相同的大小。因此,哈希函数的输出与其输入一样随机。
你对此有何看法?对 N 位随机密钥进行散列以产生 N 位散列会改变密钥的随机性吗?