Newsgroup: it.comp.www.php
Titolo: Php e MD5

Ciao, non so più come/dove cercare, ho delle password salvate in un db 
mysql cryptate in md5, sapete come posso andarle a leggere?
Devo stampare a video (pagina php) gli utenti con le password in chiaro....
Qual'è la funzione???
Grazie mille....
Michele



Non esiste, per i motivi che sono stati discussi centinaia di volte in
questo ng.
-- 
Alessandro Pellizzari


Non esiste.
L'algoritmo alla base dell'MD5 è one-way nel senso che puoi solo 
criptare e non decriptare.
Heber D'Alberto

Alessandro Pellizzari ha scritto:

ummmmm, e come le recupero?
Sicuramente è poco professionale farsele ridare dai clienti e/o cambiarle!
...ci sarà una soluzione....ti prego, non tagliarmi le gambine che mi 
servono ancora!:)

 gambine che mi servono ancora!:)
DEVI modificarle.
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 e non decriptare.
Aggiungo una cosa.
I sistemi che memorizzano la password criptata, lavorano anche con la 
password criptata, dal momento che non si puņ decriptare.
Quindi, quando uno si logga, lo fa con la password in chiaro.
Il sistema poi la cripta e la confronta con quella esistente nel db.
Ciao
Marco 

 
Si, questo l'ho capito dato che non esiste un 'decrypt'....
Però mi sorge un dubbio.
Io ho usato un estensione del DreamWeaver MX, che mi permettere di fare 
anche un recovery della password inserendo l'indirizzo e-mail (form 
prestabiliti da questa estensione). Mi lascia pensare che esiste 
qualcosa per recuperarle, altrimenti come fa ad inviarmi la password 
sull'indirizzo e-mail?

 e-mail?
Prima cosa, bisogna verificare quale codice utilizza DW per fare questo 
recupero.
Secondo, è probabile che non faccia nessun recupero, ma semplicemente crei 
una nuova password e te la invii.
Terzo, potrebbe non essere MD5 l'algoritmo di codifica, ma un qualche altro 
sistema a chiave simmetrica.
Ciao
Marco 

 
Il dubbio che è venuto anche a me, ero sicuro che fosse md5, tra le 
opzioni di login c'è spuntata la voce:
encrypt password

Cambio le password è le metto non cryptate!

 encrypt password
Ma stiamo parlando di script scritti da chi???
Inoltre "encrypt" può voler dire qualsiasi cosa.
Se scrivo "pippo" e memorizzo "oppip", ho criptato la password.
Ma da questo a MD5...
Ciao
Marco 

> Cambio le password č le metto non cryptate!
Non č una gran mossa.
Se ti bucano il db o il tuo programma ha un bug, potresti rendere pubbliche 
tutte le password.
Ciao
Marco 

Pippolino ha scritto:

MD5 ha diversi buchi, quindi per password facili puoi provare qui:
Prova qui:
http://md5.rednoize.com/
http://passcracking.ru/index.php?add=1
Questi con
"francesco" ovvero 0581938f0767a65b373cea80e905c25f
funzionano...
divertiti!
;)
-- 
Napolux
Bombing for peace is like fucking for virginity
http://napolux.altervista.org
http://napolux.deviantart.com

Pippolino wrote:

perche' dovresti visualizzarle in chiaro?
IMHO sarebbe poco sicuro..
comunque se ne vale la pena puoi usare le rainbow table per l'algoritmo md5
e ottenere tutte le password in chiaro..
ripeto .. se ne vale la pena ..
-- 
www.iuz-lab.info

 MD5 ha diversi buchi, quindi per password facili puoi provare qui:
MD5 non ha diversi bug.
I siti che indicano hanno un DB con tutti gli hash md5 possibili e il
valore che li ha generati. Ci sono voluti mesi (forse anni) di calcolo
per costruire il DB, ma e` comunque un insieme finito di valori che deve
rappresentare un insieme infinito di valori, quindi ci sono infinite
collisioni.
Tutti gli algoritmi di hashing hanno questi "bug" perche` rappresentano
un insieme infinito di oggetti con un insieme finito di codici. Solo che
piu` e` lungo il codice piu` tempo ci vuole a crackarlo (e piu` spazio
serve per memorizzare il DB delle corrispondenze).
Da cio` deriva che mettendo l'hash in quei siti NON si trovera` il
valore della password immessa all'iscrizione, ma quasi sicuramente una
cosa che non c'entra niente, ma che corrisponde allo stesso hash.
Bye.
-- 
Alessandro Pellizzari

 
le collisioni sono infinite ma per le aspettative e la situazione di
Pippolino sarebbe il migliore modo di risolvere il tutto..
-- 
www.iuz-lab.info

 MD5 non ha diversi bug.
E allora perche' se ne sconsiglia l'uso per applicazioni in cui e' 
richiesta una forte sicurezza?
MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash 
function, MD4. In 1996, a flaw was found with the design of MD5; while 
it was not a clearly fatal weakness, cryptographers began to recommend 
using other algorithms, such as SHA-1 (recent claims suggest that SHA-1 
has been broken, however). In 2004, more serious flaws were discovered 
making further use of the algorithm for security purposes questionable.
http://en.wikipedia.org/wiki/MD5
E anche 
http://www.schneier.com/essay-074.html
 e centinaia di altri link.
Insomma, per criptare pw in un database va anche bene... Ma se si vuole 
maggiore sicurezza c'e' ben altro.


 Sicuramente č poco professionale farsele ridare dai clienti e/o cambiarle!
Sicuramente meno professionale un sistema di gestione password che ti
consente il recupero.

 richiesta una forte sicurezza?
Se leggi bene i documenti, spiegano come creare due documenti (o file, o
password o ...) che abbiano lo sesso MD5. Nessuno spiega come risalire
dall'hash all'originale, perche` non e` possibile.
Quello che si puo` fare con MD5 e` di creare due documenti, distribuire
quello "buono" con un hash MD5 e farselo approvare per poi togliere
quello buono e metterne uno maligno con lo stesso MD5 e fare danni.
Questo e` il "buco" di MD5 per cui non dovrebbe essere usato per certe
cose. Per approvare documenti ci sono sicuramente altri algoritmi, a
partire da pgp e gpg.
MD5 serve a creare hash, tutto il resto sono applicazioni accessorie che
si e` scelto di usare per comodita` (velocita` di calcolo, semplicita'
di generazione, lunghezza predefinita dell'hash, ecc.)
Per le password in un DB c'e` gia` il problema che sono comunque tutte
corte (mai visto una password, che non fosse mia, piu` lunga di 6-7
caratteri), quindi il cracking e` abbastanza semplice, con o senza MD5.
In ogni caso, la prima regola e` sempre tenere segreti gli hash. Senza
quelli l'unico modo e` a tentativi (che possono essere rallentati,
loggati, bloccati, ecc.).
Bye.
-- 
Alessandro Pellizzari

 consente il recupero.
 >
Perché è meno professionale se la gestione del server e delle password 
le tengo io?

Pippolino wrote:

con password recuperabili IMHO si..
-- 
www.iuz-lab.info

 
Dovrebbero bucarmi il server, il server MySQL accetta connessioni solo 
su localhost e la porta 3306 è chiusa sull'esterno...

 
FUNZIONAAAAA!!!!
Sei un signore....
...
Grazie mille....

 
Tipo, giusto per capire...

 
E' solo per uso amministrativo!
Grazie...
Michele

 le tengo io?
Perchè garantisce che, qualora l'utente se la cambi (e la procedura
seria dovrebbe prevederlo), nessun'altro tranne lui la conosce. Neanche
l'amministratore di sistema che può resettare la password, bloccare
l'utente, vaporizzarlo, ma non può entrare nel sistema usando quelle
credenziali.
E' una delle basi della sicurezza.

 Tutto qui!
Fossi in te ci andrei cauto con questa cosa.
La normativa sulla privacy vieta ESPRESSAMENTE che, oltre al titolare 
stesso della password, le possa avere qualcun'altro.
Comunque a parte questo, se io fossi un tuo utente/cliente, 
m'incavolerei e non di poco a prescindere dalla fiducia che possa 
riporre o meno in te.
Heber D'Alberto

 usando quelle credenziali.
IMHO questa tua affermazione e' un po' eccessiva. 
La cosa piu' semplice che l'amministratore puo' fare se desidera
entrare con le credenziali di un utente (se il sistema non lo consente
direttamente) e' salvare l'hash, reimpostare la password, loggarsi con
la nuova password e successivamente ripristinare l'hash originario.


 la nuova password e successivamente ripristinare l'hash originario.
E' vero, ma non sempre, bisogna che l'amministratore abbia la
possibilità di farlo. Sicuramente è possibile se l'hash è
memorizzato in una tabella e l'amministratore ha accesso in lettura e
scrittura sulla tabella. Ma ad esempio, se fai una autenticazione
tramite le credenziali del DB  anche l'amministratore non può farci
nulla.
Va da se che non è il caso esposto quindi... hai ragione :-)

 Va da se che non è il caso esposto quindi... hai ragione :-)
Che cosa intendi per "credenziali del DB"?
Se intendi "utilizzando username e password per effettuare la
connessione al db come fa, ad esempio, mysql_connect()" allora non e'
corretto nemmeno in quel caso. MySQL, ad esempio, salva i dati di
autenticazione nella tabella "user" del database "mysql". Se crei due
utenti con la stessa password, il campo "Password" conterra' lo stesso
valore, da cui e' possibile utilizzare la stessa procedura indicata in
precedenza per effettuare il login sotto le credenziali di un altro
utente.
In linea di massima un amministratore ha sempre accesso, in un modo o
nell'altro, al repository dove vengono custodite le password (e/o
relativi hash) ed in tutti i casi in cui il sistema permetta (in un
modo o nell'altro) di modificare tale archivio allora l'amministratore
sara' sempre in grado di effettuare un login con le credenziali di un
altro utente.


 la nuova password e successivamente ripristinare l'hash originario.
Soluzione funzionale nel caso di autenticazioni (diffusissime...) 
uniche, del tipo
- chiamo login
- setto la sessione
- non ti autentico per il prossimo millennio, se continui a operare 
(leggi evito se la sessione scada...)
Soluzione folle nel caso di autenticazioni web (e non...) basate ad 
esempio su mod_auth_quellochetipare di apache...
in questo caso infatti il cambio della pwd comporta l'immediato re-login...
e quindi anche il metodo del cambio hash ti costringerebbe a incatenare 
ad una sedia il tuo utente ignaro per tutta la durata della tua 
sessione, per evitare che lui si chieda per quale motivo con la sua 
password non riesce a loggarsi.
--
~omar




[OT]
Io seguirei il suo consiglio.
Se fai hosting devi preoccuparti dei tuoi utenti piu' che del mondo ;)
[/OT]
--
~omar

 quale motivo con la sua password non riesce a loggarsi.
A mio parere le tue affermazioni sono inconsistenti. A partire dal
fatto di potersi loggare in orari insoliti (es. di notte) quando si
hanno moltissime probabilita' che l'utente sia offline, e' sempre
possibile mettere "offline" il sito per il tempo necessario alla
manutenzione.


 manutenzione.
Quindi per il semplice fatto che
 > si hanno moltissime probabilita' che l'utente sia offline
stai suggerendo un metodo rischioso per uno che viene pagato per 
mantenere attivo un servizio ad accesso riservato.
 > salvare l'hash, reimpostare la password, loggarsi con
 > la nuova password e successivamente ripristinare l'hash originario.
Il sistema che hai indicato comporta il rischio (in un sistema di 
autenticazione a mod_auth...) che l'utente si logghi mentre tu hai 
scambiato l'hash, il che e' *sbagliato* nella salvaguardia  di un 
amministratore che "non vuole farsi beccare".
In parole povere il metodo di cambio hash funziona (e l'ho scritto 
su...) soltanto in applicazioni a login unico (peraltro 
diffusissime...), ma visto che si sta discutento di password e metodi di 
login affrontiamo tutti gli aspetti.
--
~omar

 di login affrontiamo tutti gli aspetti.
IMHO in questo thread sei l'unico ad aver aperto una discussione su
altri metodi di autenticazione e, anche in tal caso, ho indicato come
aggirare quello che tu ritieni un problema.
Come ho gia' detto, le tue affermazioni sono inconsistenti e non
aggiungono nulla a quanto gia' detto, se vuoi continuare a discutere
cerca almeno di portare a supporto delle tue parole qualche cosa di
piu' di inutile "catene" ...


 aggirare quello che tu ritieni un problema.
Ho scritto di altri metodi di autenticazione, come si e' scritto in 
questo thread anche di altri metodi di cifratura... leggere un thread 
per intero e' cosa buona e giusta.
 > La cosa piu' semplice che l'amministratore puo' fare se desidera
 > entrare con le credenziali di un utente (se il sistema non lo consente
 > direttamente) e' salvare l'hash, reimpostare la password, loggarsi con
 > la nuova password e successivamente ripristinare l'hash originario.
Parlando dei sistemi di login a autenticazione unica (diffusissimi...), 
il sistema di cambio hash da te indicato e' funzionale;
ho appoggiato la tua affermazione qualche messaggio fa... leggere tutto 
il thread e' cosa buona e giusta.
Parlando di metodi di autenticazione leggermente piu' solidi, il sistema 
da da indicato non e' funzionale;
ed infatti hai portato a tua giustificazione esclusivamente la bassa 
probabilita' che di notte l'utente realmente autorizzato effettui un login.
Questo non significa voler discutere con qualcuno (ne tantomeno con te...)
ripeto... visto che si e' parlato di altri metodi di cifratura, si 
scrive anche di altri metodi di login che magari qualcuno potrebbe 
preferire ai piu' googlati.
A meno che tu non voglia anche impedire una discussione tecnica su un 
argomento peraltro non piu' tanto OT.
--
~omar

 servono ancora!:)
se devi fargli fare login basta criptare l'input dell'utente con md5 e 
comparare la stringa con la pass nel db
-- 
http://josh.pixael.com

 sull'indirizzo e-mail?
se la pass è criptata la ricrea in automatica... la manda all'utente e 
poi la cripta salvandola nel db
PS ma non puoi imparare php ed essere cosciente di quello che fai??? ;)
-- 
http://josh.pixael.com

 encrypt password
ah beh allora sicuro è in md5 :-O
-- 
http://josh.pixael.com

 argomento peraltro non piu' tanto OT.
[mi quoto]
Come ho gia' detto, le tue affermazioni sono inconsistenti e non
aggiungono nulla a quanto gia' detto
[/mi quoto]


 [/mi quoto]
Valutando la qualita' delle tue argomentazioni aumenta il mio gaudio per 
l'avvicinarsi dell'epifania; con l'apertura delle scuole troll e cugini 
diminuiranno (spero).
--
~omar


Come al solito, voi due andate d'amore e d'accordo!!! :-).... Auguri di Buon
Anno


Ricordo, una funzione md5(); che viene applicata in una query di insert.
Purtroppo l'estensione genera un sacco di file (il sito lo faccio prima, 
lo spazio non mi preoccupa in quanto ho un server in 
locale/pubblico)...e non mi va di impazzire a cercare la funzione tra 
1000 file (numero casuale, non li ho contati).
Cmq ho risolto con un link che mi è stato postato...
Grazie mille a tutti....
Michele

 Valutando la qualita' delle tue argomentazioni 
Io porto delle argomentazioni, tu per contro non porti assolutamente
nulla a supporto delle tue farneticazioni.
