@1programmer

Как генерировать 5 случайных паролей на php?

Привет всем.
Есть генератор паролей:
function generate_password()
      {
        $arr = array('a','b','c','d','e','f',
                     'g','h','i','j','k','l',
                     'm','n','o','p','r','s',
                     't','u','v','x','y','z',
                     'A','B','C','D','E','F',
                     'G','H','I','J','K','L',
                     'M','N','O','P','R','S',
                     'T','U','V','X','Y','Z',
                     '1','2','3','4','5','6',
                     '7','8','9','0','.',',',
                     '(',')','[',']','!','?',
                     '&','^','%','@','*','$',
                     '<','>','/','|','+','-',
                     '{','}','`','~');
        // Генерируем пароль
        $pass = "";
           for($i = 0; $i < 10; $i++)
            {
                  // Вычисляем случайный индекс массива
                  $index = rand(0, count($arr) - 1);
                  $pass .= $arr[$index];
            }
        return $pass;
      }

который генерирует 1 случайный пароль. Нужно что бы он генерировал допустим 10 паролей и записывал в массив. Пробовал так
function generate_password()
      {
        $arr = array('a','b','c','d','e','f',
                     'g','h','i','j','k','l',
                     'm','n','o','p','r','s',
                     't','u','v','x','y','z',
                     'A','B','C','D','E','F',
                     'G','H','I','J','K','L',
                     'M','N','O','P','R','S',
                     'T','U','V','X','Y','Z',
                     '1','2','3','4','5','6',
                     '7','8','9','0','.',',',
                     '(',')','[',']','!','?',
                     '&','^','%','@','*','$',
                     '<','>','/','|','+','-',
                     '{','}','`','~');
        // Генерируем пароль
        $pass = "";
        $j = 0;
      	
           while ( $j <= 10) {
           	for($i = 0; $i < 10; $i++)
            { 
                  // Вычисляем случайный индекс массива
                  $index = rand(0, count($arr) - 1);
                  $pass .= $arr[$index];
                  $j++;
            }
            
           }
           return $result = array($pass);
    
        
      }

print_r(generate_password());

В чем ошибка ?
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 3
demon416nds
@demon416nds
Разработчик на чем попало
а вызвать функцию генерации одного пароля из цикла не судьба?
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
$arr=[];
do $arr[]=generate_password(); while (count($arr)<10);
print_r($arr);
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
Ещё одна функция пусть принимает параметром требуемое число паролей и дёргает вашу исходную функцию столько раз:
function generate_n_passwords($n) {
	$result = array();
	while($n--) {
		array_push( $result, generate_password());
	}
	return $result;
}

$myFivePasswords = generate_n_passwords(5);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы