Как сгенерировать случайный пароль с PHP? - PullRequest
36 голосов
/ 03 декабря 2009

Или есть программное обеспечение для автоматической генерации случайных паролей?

Ответы [ 17 ]

0 голосов
/ 17 августа 2017

Это поможет создать случайный пароль:

<?php
function generatePassword ($length = 8)
{
  $genpassword = "";
  $possible = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
  $i = 0; 
  while ($i < $length) { 
    $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
    if (!strstr($genpassword, $char)) { 
      $genpassword .= $char;
      $i++;
    }
  }
  return $genpassword;
} 
?>
<input type="text" value="<?php echo generatePassword(); ?>">

Вот рабочий пример (демонстрация)

0 голосов
/ 04 октября 2016

Эта функция сгенерирует более надежный пароль, чем большинство популярных решений:

function generatePassword($size=8){
    $p = openssl_random_pseudo_bytes(ceil($size*0.67), $crypto_strong);
    $p = str_replace('=', '', base64_encode($p));
    $p = strtr($p, '+/', '^*');
    return substr($p, 0, $size);      
}

Каждый символ пароля будет [A-Z] или [a-z] или ^ или *

0 голосов
/ 18 февраля 2013

Pwgen-php создает сохраняемые, произносимые (легче запомнить) пароли: http://code.google.com/p/pwgen-php/

Может ли это быть приемлемым?

0 голосов
/ 03 декабря 2009

Вы можете просто использовать пакет PEAR Text_Password - он поддерживает довольно много алгоритмов для их генерации; и освобождает ваше время, чтобы заняться чем-то другим.

0 голосов
/ 05 сентября 2018

Я использую функцию st_split и implode:

function genarateKey(){
    $limit= 8;
    $chars= 'abcdefghijklmnopqrstuvxwyz1234567890!@#$%^&*()_+=-[]{}\|ABCDEFGHIJKLMNOPQRSTUVXWYZ';
    $chararray= str_split($chars);
    $gen=array();
    for($i=0;$i<$limit;$i++){
        $index=rand(0,strlen($chars)-1);
        $gen[$i]= $chararray[$index];
    }
    return implode($gen); //converts array to string
}
0 голосов
/ 23 мая 2019

Генератор памятных паролей

function password($length)
  {
    $vowel = array(
        'a',
        'e',
        'i',
        'o',
        'u',
    );

    $consonant = array(
        'b',
        'c',
        'd',
        'f',
        'g',
        'h',
        'j',
        'k',
        'l',
        'm',
        'n',
        'p',
        'q',
        'r',
        's',
        't',
        'v',
        'w',
        'x',
        'y',
        'z',
    );

    $result = '';
    for ($i = 0; $i < $length; $i++) {
        if ($i % 2 == 0) {
            $result .= $consonant[rand(0, 15)];
        } else {
            $result .= $vowel[rand(0, 4)];
        }
    }

    return $result;
}

Результат:

password(8);//kutekaku
password(11);//rahubabatul
0 голосов
/ 19 октября 2016
function generate_password($length = 6) {
    $password = '';
    $chars = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
    for ($i = 0; $i < $length; $i ++) {
        $password .= $chars[array_rand($chars)];
    }
    return $password;
}
...