随机密码功能


Random password functionality

我需要给我的用户一个生成安全密码的函数。。。

我脑子里有算法,但不知道如何处理它。

  1. 我将在密码中提供一组字符
  2. 我将控制密码的大小,这意味着选择长度
  3. 从数组中选择随机索引以获得我指定长度的passsword

最后一部分是我无法实现的。。

任何帮助都将不胜感激。。。

function randompassword() {  // Declaring the function
//Config Start
$salt = "abchefghjkmnpqrstuvwxyz0123456789"; // Your characters bank
$n = "8";                                   // Number of character to return
//end config
//Logic for password generation..
return $pass;
}
$v = strlen($salt); 
$pass='';
srand((double)microtime()*1000000);
  $i = 1;
  while ($i <= $n) {
        $num = rand() % $v;
        $tmp = substr($salt, $num, 1);
        $pass = $pass . $tmp;
        $i++;
  }

你可以试试这个代码。。

您可以使用类似的东西来管理密码的强度,并自定义要在密码中输入的字符。

function randomPassword($length=9, $strength=0) {
$vowels = 'aeuy';
$consonants = 'bdghjmnpqrstvz';
if ($strength & 1) {
    $consonants .= 'BDGHJLMNPQRSTVWXZ';
}
if ($strength & 2) {
    $vowels .= "AEUY";
}
if ($strength & 4) {
    $consonants .= '23456789';
}
if ($strength & 8) {
    $consonants .= '@#$%';
}
$password = '';
$alt = time() % 2;
for ($i = 0; $i < $length; $i++) {
    if ($alt == 1) {
        $password .= $consonants[(rand() % strlen($consonants))];
        $alt = 0;
    } else {
        $password .= $vowels[(rand() % strlen($vowels))];
        $alt = 1;
    }
}
return $password;

}

<?php
    $salt = "abchefghjkmnpqrstuvwxyz0123456789";
    for ($i=0;$i<$n;$i++)
        $pass=$pass.$salt[rand(0,strlen($salt))];
    echo $pass;
?>

您也可以在的末尾添加一个substr(sha1($pass),0,$n);

它真的没有那么复杂:

$characters = 'abcd...';
$password   = '';
$length     = 8;
while (strlen($password) < $length) {
    $password .= $characters[mt_rand(0, strlen($characters) - 1)];
}

试试这个:

function unique_id2()
              {
             return substr(md5(uniqid(rand(), true)), 25);
            }
<?php
$password = "";
for($k=0;$k<$n;$k++){
 $rand = rand(0,strlen($salt));
 $password .=   $salt[$rand];
 }
echo $pass;
?>