Newsgroup: it.comp.www.php
Titolo: Sempre in merito a MD5

Ciao a tutti, esiste un modo per verificare se una stringa è cifrata 
mediante MD5?
grazie



No, a meno di conoscere l'originale. Come indizio, se e' una sequenza
binaria di 16 byte o una sequenza esadecimale di 32 caratteri, allora
e' un MD5 valido; ma che cosa l'abbia generato, o SE qualcosa l'abbia
generato, non si sa ed e' bene che si continui a non sapere :-)
Leonardo
-- 
Avere studiato senza mettere in pratica e' inutile;
mettere in pratica senza avere studiato e' pericoloso.
                                                - Conphpucio

 mediante MD5?
Chiesto cosi: no. MD5 e' un digest, non uno schema per cifrare. Come tale non 
conserva informazione sulla stringa originale. Nel MD5 non esiste informazione 
semantica su se stesso (e' solo un numero senza significato verso se stesso)
Riformulando la domanda: si puo' riconoscere la stringa originale da un MD5?
Ni. per stringhe facili si puo' creare (con un metodo brute force) rispettivi 
MD5 e' verificare  se sono uguali con quello cercato, costa un po' di tempo...

però con questo metodo si ottiene solo una delle stringe che se
codificata ci da la stringa di partenza in nostro possesso. Infatti a
più strighe originiarie esiste la stessa stringa codificata MD5 (non
mi sbaglio vero?), il che complica ulteriorrmente e sopratutto allunga
i tempi per ricercare la stringa non codificata.
clika:
http://www.mgsnowboard.com

centix wrote:

ma deve essere cosi'..
devi essere in grado di vedere se due hash provengono dalla stessa stringa..
ma non devi (dovresti) essere in grado di ricavare la stringa originale da
un hash..
-- 
www.iuz-lab.info

 i tempi per ricercare la stringa non codificata.
giusto...
cmq. se si usa MD5 senza certe precauzioni sulle stringhe /nude/, corte, si 
possono fare dictionary attack senza troppi problemi.
nel senso:
pippo corrisponde sempre a:
$ echo pippo | openssl md5
f583ca884c1d93458fb61ed137ff44f6
ti fai una lista ordinata di md5, ed in alcuni millisecondo (!) trovi la 
stringa se esiste, anche se hai millioni di md5 diversi.
Collisioni sono rari!

 possono fare dictionary attack senza troppi problemi.
Quoto. Ad esempio si puo' fare un concat con una frase segreta.
-- 
"So, I never went back to work for Lieutenant Dan.
Though he did take care of my Bubba-Gump money.
He got me invested in some kind of fruit company"

 MD5 e' verificare  se sono uguali con quello cercato, costa un po' di tempo...
Anche su stringe complesse fino a 14 caratteri.... Sull'md5 c'è stato un 
bellissimo post tempo fa sul ng di Delphi. Ti incollo il messaggio più 
significativo:
"Da un anno sono disponibili su internet le "rainbow tables", cioè
dei database di svariati GB che hanno tutti gli hash precalcolati di 
tutte le combinazioni da 1 a 14 caratteri dei principali caratteri 
digitabili da tastiera.
Ci sono società che vendono questi DB (da 500Mb a 80Gb non compressi), 
ma riesci a trovarli, gratuitamente, su internet per vie traverse.
Per creare questi DB sono necessari alcuni mesi o delle settimane
attraverso l'uso del calcolo distribuito, e chi li possiede può ricavare
la password in pochi secondi (il tempo di un SELECT password WHERE hash 
= ..), con un margine di successo che va dall'80 al 99.9%, in base a 
quanto è grande il DB.
Le rainbow tables si basano sulla tecnica faster time-memory trade-off 
di Philippe Oechslin.
Sul suo sito è possibile reversare gli hash, anche se il DB è di soli
1.1Gb. E possibile inoltre scaricare quello da 512Mb.
Tools come L0phtCrack che si basano sul brute forcing in real time sono
storia vecchia, il presente adesso è il brute forcing precalcolato dato
dalle rainbow tables, anche se i DB circolanti sono generalmente solo 
per password fino a 14 caratteri, perchè Windows non usa l'hash 
LanManager per password più lunghe.
http://lasecwww.epfl.ch/~oechslin/projects/ophcrack/index.php?password=sound
http://www.antsight.com/zsl/rainbowcrack/
http://rainbowtables.shmoo.com/
http://sarcaprj.wayreth.eu.org/
http://passcracking.com
Chi vuole puo' anche crearsi le rainbow tables da solo.
Un ottimo tools è Winrtgen che supporta gli hash LM, NTLM, MD2, MD4, 
MD5, SHA1, RIPEMD160, MySQL323, MySQLSHA1, CiscoPIX, SHA-2 (256), SHA-2 
(384), SHA-2 (512)
http://www.oxid.it/downloads/winrtgen.zip
 "

e già con la "somma" alla pwd di una frase segreta (magari più lunga
di 14 caratteri per evitare i DB citati in altre risposte) non si
dovrebbero avere problemi di sorta.
clika:
http://www.mgsnowboard.com