Предлагаю функцию для генерации легко запоминающегося пароля:
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; }
12345678910111213141516171819202122232425262728293031 | 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;} |