infatti...usa un sistema di autenticazione come questo:

passwords.php:

<?php die("Non puoi visualizzare il file!!!"); ?>
utente|md5password \n(a capo)
utente2|md5password2
utente3|md5password3
utente4|md5password4

bene questo sistema quando uno tenterà di visualizzare le password vedrà un messaggio di accesso negato e in caso riuscisse ad aprire il file vedrà le password md5 quindi...niente da fare.

adesso la pagina di login

<?php
function check_user($user, $password) {
$result = FALSE;
$users_file = file("passwords.php");
unset($users_file[0]); //elimina il messaggio di errore e procede con la verifica della password
$md5password = md5($password); /*
criptiamo la password e la confrontiamo direttamente con l'altra passowrd criptata*/
foreach($users_file as $line) {
$user_db = explode(/*separatore*/"[B]|[/]", $line);
if(($user_db[0] == $user) && ($user_db[1] == $md5password)) {
$result = TRUE;
break;
}
}
return $result;
}
if(!isset($_POST['mod'])) {
echo //pagina di login
}else{
if(check_user($_POST['username'], $_POST['password'])) {
echo "username e password giusti";
}else{
echo "username e/o password errati";
}
}
?>

questo è un sistema che uso sempre perchè io uso altervista e con i db poi si bloccano, poi non sono disponibili, poi non funzionano...insomma così cripti anche le password e in pratica più sicuro di così senza db...non credo ci siano altri metodi.