Oczywiście zgodzę się że warto sprawdzać czy hasło nie jest za krótkie, ma kilka literek i nie zawiera w sobie loginu czy innych danych użytkownika (imie, nazwisko, data, etc). Polecam też wzbogacić md5. Ja na przykład korzystam z takiej funkcji:
<?php
// Maskowanie hasła użytkownika. Skrót hasła składa się ze 128 znaków alfanumerycz
nych.
function hashPassword( $pass )
{
$prefix = sha1
( md5(time()).$pass ); $suffix = sha1
( md5($pass.time()) ); return $prefix.sha1($prefix.$pass.$suffix).$suffix;
}
// Sprawdzanie poprawności hasła. Gdzie $user to skrót hasła zapisany w bazie danych
// natomiast $pass to wartość podana przez użytkownika w formularzu logowania.
function verifiePassword( $user, $pass )
{
$prefix = substr( $user, 0
, 40
); $suffix = substr( $user, 80
, 48
); $password = $prefix.sha1($prefix.$pass.$suffix).$suffix;
return strcmp( $user, $password ) == 0; }
?>
Dzięki temu to samo hasło zawsze ma inny skrót a dzięki temu jego przechowywanie staje się bezpieczniejsze.