andrea, e' un errore comune pensare che md5 e sha1 siano operazioni di crypt, per questo il mio intervento sul topic e l'inizio della pillola:
Ormai tutti sapete ( vero? ) che si devono criptare le password quando le salvate da qualche parte
quante volte anche tu hai letto "decrypt" o "crypt" e l'argomento era sempre e solo md5?

Il tuo bel giro conduce ad un hash, ergo stai overhashando la stringa tramite un operazione che non ha lunghezza fissa ma che e' one way, ha lunghezza fissa per dato in input, e alla fine e' ridotta nuovamente ad hash dall'md5

Personalmente uso sha1 da una vita e non ho mai avut problemi, sia perche' non mi sono mai sognato di selezionare user e pass, sia perche' se qualcuno entra nel db o riesce a iniettare query via web, i problemi sono ben piu' gravi della sola operazione di login.

Riguardo il discorso crypting, invece, blowfish ed altri fanno egregiamente il loro lavoro e se si sta su SSH non si hanno problemi di invio in chiaro.

Quindi gira e rigira, questo tuo metodo, magari interessante dal punto di vista della conversione usata, non aumenta di un solo punto la sicurezza rispetto una funzione che ritorna sha1(sha1($salt).$salt.$pass) ... e come pillola manca di contorno, ovvero come sfruttare eventualmente la funzione o altro. Opinione personale