This is a really good question.
MD5 is a hash function - it “mixes” the input data in such a way that some things should not be done, including restoring input based on output (this is not encryption, there is no key and it is not intended for inversion - rather the opposite). The description of manual work is that each input bit is entered several times in a sufficiently large internal state, which is mixed so that any difference quickly spreads to the entire state.
MD5 public since 1992 . There is no secret and has never been a secret for MD5 design.
MD5 is considered cryptographically broken since 2004, the year of publication of the first collision (two separate message entries that give the same result); it has been considered “weak” since 1996 (when some structural properties were discovered that were believed to ultimately help in creating collisions). However, there are other hash functions that are as public as MD5 and for which weakness is not yet known: the SHA-2 family. Newer hash functions are currently being evaluated as part of the SHA-3 contest.
The really troubling part is that there is no known mathematical proof that a hash function can actually exist. A hash function is a generally accepted efficient algorithm that can be embedded as a logical circuit of finite, fixed and small size. For practitioners of computational complexity, it is somewhat surprising that you can set up a circuit that cannot be inverted. So, now we only have candidates: functions for which no one has yet found flaws, and not a function for which there is no weakness. On the other hand, the MD5 case shows that, apparently, it takes a considerable amount of time to get actual known collisions with attacks from known structural flaws (weaknesses in 1996, collisions in 2004, application of collisions - to a pair of X.509 certificates - in 2008 year), so the current trend is to use the flexibility of the algorithm: when we use a hash function in the protocol, we also think about how we can go to another if the hash function is weak.
source share