|
Posted by Oli Filth on 05/28/05 01:00
simon said the following on 27/05/2005 21:01:
>>Start with a given string, it will always map to the same hash. Start with
>>the hash, it could map to any one of an infinite number of strings.
>
> I don't quite agree. But that's not the point.
> I was only replying to the OP. So for the third time, it is technically
> possible to get the string but almost impossible to do so.
No, it isn't possible! (I know that's not the point, but since I'm bored...)
Think about it, md5() produces a 32-character hexadecimal result, i.e.
16^32 possible results. This means that it can only uniquely identify a
set of 16^32 different input strings. Clearly, there are far more
possible strings than that (an infinite number, in fact), hence it's
impossible to get back the original string on this basis alone.
An analogy:
Take a page of text as a string, and create an "encoded" version by
taking every 3rd letter and concatenating them to a new string.
Clearly, it's very unlikely that I'd get the same encoded string if I
come along with a different page of text and did this. However, that
doesn't mean that you have any chance of identifying the original string
given the encoded string. There has been a fundamental loss of
information, which is impossible to retrieve unless you already know
something about the original string.
--
Oli
[Back to original message]
|