Newsgroup: it.comp.www.php
Titolo: md5 che e'?

Scusate la mia ignoranza ma a cosa dovrebbe servirfe la funzione md5 e cosa
significa md5?
Nel manuale trovo:"
string md5 (string str)
Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5
Message-Digest Algorithm, and returns that hash."
Ma non e' che ci abbia capito molto.
Grazie.

 Nel manuale trovo:"
md5 è il livello di criptazione di un dato.

> md5 č il livello di criptazione di un dato.
Potresti essere piu' dettagliato?
Al limite sarebbe possibile trovare qualche informazione sull'md5 in rete?
Possibilmente in italiano perche' con l'inglese non e' che ci vada tanto
d'accordo.
Grazie.

> md5 č il livello di criptazione di un dato.
hmmmm un algoritmo per criptare stringhe, restituisce (almeno la versione
php) una stringa di 32 caratteri

Message Digest 5
e' una sorta di funzione di hashing unidirezionale.
Significa questo:
fai finta di avere uno scatolotto (MD5) in cui da una parte inserisci
una stringa lunga quanto ti pare (il parametro di ingtresso).
Dall'altra ottieni una stringa di lunghezza fissa (non mi ricordo al
momento di quanti byte) che e' il Digest.
A cosa serve?  Appunto a creare un Digest, cioe' una stringa di
controllo per verificare (ad esempio) l'integrita' di un messaggio o
di un file.
Immagina questo:  tu scrivi un messaggio (es: Cara ti amo) ma prima
che questo venga recapitato qualcuno lo modifica a tua insaputa (es:
Cara non ti amo piu').
A questo punto la tua ragazza riceve il messaggio e si suicida.
Se tu oltre al messaggio invii anche la stringa MD5, la tua ragazza
potra' calcolare il Digest MD5 del messaggio Cara non ti amo piu' da
lei ricevuto e confrontandola con la stringa MD5 che tu le hai mandato
si accorgerebbe che non coincidono. Ergo, il messaggio da lei ricevuto
NON e' quello da te mandato.
Infatti, essendo una funzione unidirezionale, e' difficilissimo
(teoricamente possibile, ma praticamente impossibile) creare un
messaggio che abbia lo stesso Hash MD5 di un altro.
Spero che questa spiegazione ti sia utile.
Ciao
S.


 Significa questo:
Grazie.
La spiegazione e' stata esauriente.
Immagino non esista solo l'md5 per criptare.
E' quello piu' usato?
Perche'?
Che significa hash?
Grazie.
Ciao.

 NON e' quello da te mandato.
=) Ma se gliela mandi insieme uno O cancella il Digest Md5 oppure lo
ricalcola dal messaggio!
E dove la ritrovi un'altra ragazza che controlla la corrispondenza tra il
digest in Md5 e il messaggio?!?
=))


Ho paura di essere finito Out Track. Mi scuso.
S.

Ovviamente il Digest e' mandato a parte.
Per quanto riguarda l'altro tema e' vero: non so quanto le ragazze
siano a proprio agio con l'MD5. Almeno non la mia.....
Ciao a tutte le ragazze
S.


 Inc. MD5 Message-Digest Algorithm, and returns that hash."
Detta alla raglio d'asino, una funzione di hashing è una
funzione che "mappa" una stringa qualsiasi (lunga a piacere)
in un indice a lunghezza fissa (sia esso un intero o una stringa)
detto hash code.
Dal momento che le stringhe "qualsiasi" sono virtualmente
infinite, mentre quelle a lunghezza fissa sono finite (anche se
possono essere tante), ossia:
    f: S -> {0 ... n}
può succedere che due stringhe diverse abbiano lo stesso hash
code. In questo caso si ha una "collisione".
MD5 è tale che la probabilità di collisioni è molto bassa, e
non è possibile risalire dall'hash code alla stringa originale
(o comunque ad una delle possibili stringhe originali). Ecco
perchè la funzione di hash MD5 viene utilizzata come algoritmo
di criptazione(*).
Cripti la password con MD5 e salvi la password criptata (hash)
in un database. Per autenticare qualcuno calcoli l'hash dalla
password dichiarata, e lo confronti con l'hash corrispondente
al login dichiarato, che recupererai dal database: se i due hash
coincidono puoi essere ragionevolmente sicuro che il tuo utente
sia chi dice di essere.
(*) L'uso più comune delle funzioni di hash è nell'implementazione
delle hash table, strutture dati avanzate utilizzate, ad esempio,
per gestire le tavole dei simboli in compilatori ed interpreti.
Se ti interessa approfondire l'argomento procurati il dragon book
("Compilers: principles, techniques and tools" di Aho, Sethi, Ullman,
della Addison-Wesley)