partito male col titolo ... criptaggio ed md5 o sha1 che siano, non c'entrano niente.

hash e crypt sono operazioni completamente differenti ... ma a parte questo, la pillola non spiega come salvare il tutto in database o come fare poi le opportune verifiche.

magari aggiungi altre informazioni poichè così si ha solo una funzione che ha un nome sbagliato e di dubbia utilità ... dove il dubbio, una volta scelto di usare una salt, sta nel fatto di quanto sia utile fare 3 cicli quando md5 o sha1 ne fanno molti di più per ottenere un risultato comunque sempre a rischio di collisioni ... in pratica non ho capito dov'è la maggiore sicurezza.

esempio, io ho pass qualunque ... nel momento in cui la invio in chiaro al server, se non sono quindi in SSH, qualunque cosa faccio dietro serve a niente perchè il man in the middle avrà sempre dati in chiaro.

Ammesso questo non sia vero, se qualcuno riesce a leggere il database e non ci sono controlli sulla lunghezza della password, e/o eventuali caratteri da usare, mettere tutto questo giro di array in mezzo tra pass e salt e il dato in unscita, un hash md5, è esattamente come non fare niente.

Quello che voglio dire è che leggendo il database ed usando una pass vuota, saprò già come accedere ai dati ... e con un update posso accedere a tutti i dati.

Quello che mi sfugge quindi è perchè secondo te questo metodo è migliore rispetto qualcosa tipo:
codice:
function hash($pass,$salt){
    return sha1(sha1($salt).$pass);
}
in quale caso il tuo sistema è più sicuro? puoi portare qualche esempio? grazie


P.S. piccola nota sull'implode ... così funziona lostesso ma the bad prototype would be used