ho provato a fare come dicevi ma non funzia.Cioè ho inserito il codice dentro una procedura di registrazione così:

$handle = fopen("materiali\.htpasswd",a);
fwrite($handle,$username.":".md5($password));


ma quando tento di autenticarmi via htaccess non mi autentica. ho provato a creare le password nei 2 modi.
nel modo che mi hai consiglito viene scritto questo nel file .htpasswd:
bbianchi:92eb5ffee6ae2fec3ad71c777531578f

mentre nel modo "classico" da shell avviene così:
bbianchi:$apr1$UQ0.....$jb20kIXQwtm4KxjelZHAr/

ovviamenet la password che ho provato era identica x entrambi i casi.forse la funzione md5 viene implementata diversamente in php e in apache?
forse conviene tornare a pensare ad una soluzione col mio modo?