Предлагаю функцию для генерации легко запоминающегося пароля:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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)]; } elseif( !in_array($lastChar,$c) AND !in_array($lastChar,$e) ) { $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)]; } else{ $password .= $b[array_rand($b)]; } } while ( ($len = strlen($password) ) < $size); return $password; } |