Vorrei un attimo approfondire lo script di saibal.
La funzione Crypt() l'ho utilizzata anche io; l'unica differenza è che saibal utilizza il parametro SALT di crypt().
Ora, nello script da te segnalato, viene passata alla funzione "crypt()" una stringa di 2 caratteri generati casualmente.
In pratica:
codice:
$password = crypt($stringaInput, $stringa2caratteri);
La differenza è che il semplice utilizzo di crypt() su una stringa, genera una stringa criptata di lunghezza X caratteri(se non erro 64?), mentre passando il parametro SALT composto da 2 caratteri, genera una stringa più piccola compatibile con ".htpasswd"

Quindi in pratica a cosa serve il parametro SALT e come funziona? (http://it.php.net/manual/it/function.crypt.php)

L'esempio su PHP.NET non mi è stato molto chiaro...