MD5 reverse engineering June 26, 2007
Posted by Igor , add a comment , send to friendL’MD5 (acronimo di Message Digest algorithm 5) è un algoritmo per la crittografia dei dati a senso unico realizzato da Ronald Rivest nel 1991 e standardizzato con la RFC 1321.
Questo tipo di codifica prende in input una stringa di lunghezza arbitraria e produce in output una firma digitale sotto forma di stringa a 128 bit (ovvero con lunghezza fissa di 32 valori esadecimali, indipendentemente dalla stringa di input). La codifica avviene molto velocemente e si presuppone che l’output (noto anche come “MD5 Checksum” o “MD5 Hash”) restituito sia univoco (ovvero si ritiene che sia impossibile ottenere con due diverse stringhe in input una stessa firma digitale in output) e che non ci sia possibilità, se non per tentativi, di risalire alla stringa di input partendo dalla stringa di output (la gamma di possibili valori in output è pari a 16 alla 32esima potenza).[¹]

L’idea che sta alla base di md5(); è di creare un database di corrispondenze fra stringhe e relativi md5. Il database al momento conta più di 47 milioni di hash md5/sha1, e ogni volta che viene chiesta una conversione di una stringa nel corrispondente hash, se non è presente nel database, la coppia risultante viene inclusa nel database.
1 - http://it.wikipedia.org/wiki/MD5
computer science md5 reverse engineering