1
$\begingroup$

I have a simple question:

Are we certain that the md5 hashing algorithm can produce $2^{128}$ different outputs ?
If so, how ?

Note: Sorry if this has already been asked, I really couldn't find it.

$\endgroup$
1
$\begingroup$

MD5 processes a message into a fixed-length output of 128 bits, typically represented as a sequence of 32 hexadecimal digits.

This process is not random, but it’s a so called „pseudo-random“-process (A pseudo-random process is a process that appears to be random but is not 100% random).

There is actually no proof that every hash-value of the MD5-process is reachable for some input, but it is expected to be true.

So MD5 can hash every input to an „arbitrary“ hash-value of 128 bits, bits can be 1 or 0, so $2^{128}$ possible outputs.

$\endgroup$
  • 1
    $\begingroup$ ... and note that there are infinite inputs, so the hash function is very likely to produce each and every value if the output is pseudo-random, otherwise a small bias is clearly present. +1 for answering before it was put on hold :) $\endgroup$ – Maarten Bodewes Jul 12 '18 at 15:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.