I read the following piece of code:
dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum
Apparently, this code was used as a trick to produce a hex string key from a 128-bit binary pseudo-random value.
Someone here claimed this is inherently insecure since it passes a cryptographically secure random value through an "insecure hash function".
On my side, I would say the collision flaws in md5 are irrelevant here since the hash function input and output have the same size. And so, the hash function output is as random as its input.
What's your opinion about that? Does hashing an N-bit random key to produce an N-bits hash change the randomness of the key?