如何使用PHP生成随机密码?

2022-08-30 12:32:01

或者是否有软件可以自动生成随机密码?


答案 1

只需构建一串随机的 、、(或任何您想要的)到所需长度的字符串即可。下面是 PHP 中的一个示例:a-zA-Z0-9

function generatePassword($length = 8) {
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $count = mb_strlen($chars);

    for ($i = 0, $result = ''; $i < $length; $i++) {
        $index = rand(0, $count - 1);
        $result .= mb_substr($chars, $index, 1);
    }

    return $result;
}

若要进行优化,如果在单个执行期间多次调用此函数,则可以在方法(或父类)中将其定义为静态变量或常量。$chars


答案 2

这是一个简单的解决方案。它将包含小写字母和数字。

substr(str_shuffle(strtolower(sha1(rand() . time() . "my salt string"))),0, $PASSWORD_LENGTH);

下面是一个更强大的解决方案,它为所需范围内的随机长度随机生成所需字符范围内的字符代码。

function generateRandomPassword() {
  //Initialize the random password
  $password = '';

  //Initialize a random desired length
  $desired_length = rand(8, 12);

  for($length = 0; $length < $desired_length; $length++) {
    //Append a random ASCII character (including symbols)
    $password .= chr(rand(32, 126));
  }

  return $password;
}

推荐