Detailed explanation of php custom function to generate random password examples

伊谢尔伦
Release: 2023-03-11 13:32:01
Original
1531 people have browsed it

如果要做到安全密码与用户名都随机我有一个朋友做服务器的登录密码与用户名就是使用了phpmyadmin随机生成密码功能来做的,与其用phpmyadmin不如自己做了,下文整理了一些关于php随机密码生成的自定义函数供大家参考.

可以指定生成的字符串长度,代码如下:

function rand_str($length, $max=FALSE) 
{ 
  if (is_int($max) && $max > $length) 
  { 
    $length = mt_rand($length, $max); 
  } 
  $output = ''; 
    
  for ($i=0; $i<$length; $i++) 
  { 
    $which = mt_rand(0,2); 
      
    if ($which === 0) 
    { 
      $output .= mt_rand(0,9); 
    } 
    elseif ($which === 1) 
    { 
      $output .= chr(mt_rand(65,90)); 
    } 
    else 
    { 
      $output .= chr(mt_rand(97,122)); 
    } 
  } 
  return $output; 
}
Copy after login

调用实例:$randstr = rand_str(16);

生成随机字符串的函数,代码如下:

<?php 
/** 
* 产生随机字符串 
* 
* 产生一个指定长度的随机字符串,并返回给用户 
* 
* @access public 
* @param int $len 产生字符串的位数 
* @return string 
*/ 
function randStr($len=6) { 
$chars=&#39;ABDEFGHJKLMNPQRSTVWXYabdefghijkmnpqrstvwxy23456789#%*&#39;; // characters to build the password from 
mt_srand((double)microtime()*1000000*getmypid()); // seed the random number generater (must be done) 
$password=&#39;&#39;;
while(strlen($password)<$len) 
$password.=substr($chars,(mt_rand()%strlen($chars)),1); 
return $password; 
} 
?>
Copy after login

创建字符池.

function randomkeys($length) 
   { 
       $pattern = &#39;1234567890abcdefghijklmnopqrstuvwxyz 
                   ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&amp;l 
                  t;&gt;?;#:@~[]{}-_=+)(*&amp;^%$?!&#39;;    //字符池 
      for($i=0; $i<$length; $i++) 
       { 
           $key .= $pattern{mt_rand(0,35)};    //生成php随机数 
       } 
       return $key; 
   } 
   echo randomkeys(8);
Copy after login

无需创建字符池

function randomkeys($length) 
   { 
        $output=&#39;&#39;; 
        for ($a = 0; $a < $length; $a++) { 
            $output .= chr(mt_rand(35, 126));    //生成php随机数 
        } 
        return $output; 
    } 
    echo randomkeys(8);
Copy after login

随机用户名和随机密码例子:

//随机生成用户名(长度6-13)  
 
function create_password($pw_length = 4){  
    $randpwd = &#39;&#39;;  
    for ($i = 0; $i < $pw_length; $i++){  
        $randpwd .= chr(mt_rand(33, 126));  
    }  
    return $randpwd;  
} 
 
function generate_username( $length = 6 ) {  
    // 密码字符集,可任意添加你需要的字符  
    $chars = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|&#39;;  
    $password = &#39;&#39;;  
    for ( $i = 0; $i < $length; $i++ )  
    {  
        // 这里提供两种字符获取方式  
        // 第一种是使用substr 截取$chars中的任意一位字符;  
        // 第二种是取字符数组$chars 的任意元素  
        // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);  
        $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];  
    }  
    return $password;  
} 
//调用 
$userId = &#39;user&#39;.generate_username(6);  
$pwd = create_password(9);
Copy after login

The above is the detailed content of Detailed explanation of php custom function to generate random password examples. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template