Предлагаю функцию для генерации легко запоминающегося пароля:
// generates readable password
function genPassword($size = 8){
$a = array('e','y','u','i','o','a');
$b = array('q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m');
$c = array('1','2','3','4','5','6','7','8','9','0');
$e = array('-','_','!','~','$','*','@',':','|');
$password = $b[array_rand($b)];
do {
$lastChar = $password[ strlen($password)-1 ];
@$predLastChar = $password[ strlen($password)-2 ];
if( in_array($lastChar,$b) ) {//последняя буква была согласной
if( in_array($predLastChar,$a) ) { // две последние буквы были согласными
$r = rand(0,2);
if( $r ) $password .= $a[array_rand($a)];
else $password .= $b[array_rand($b)];
}
else $password .= $a[array_rand($a)];
} else {
$r = rand(0,2);
if($r == 2)$password .= $b[array_rand($b)];
elseif(($r == 1)) $password .= $e[array_rand($e)];
else $password .= $c[array_rand($c)];
}
} while ( ($len = strlen($password) ) < $size);
return $password;
}
попробовать в работе можно по адресу генерировать пароль