Home  >  Article  >  Backend Development  >  Detailed explanation of php custom function to generate random password examples

Detailed explanation of php custom function to generate random password examples

伊谢尔伦
伊谢尔伦Original
2017-06-26 10:28:221472browse

如果要做到安全密码与用户名都随机我有一个朋友做服务器的登录密码与用户名就是使用了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; 
}

调用实例:$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; 
} 
?>

创建字符池.

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);

无需创建字符池

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

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

//随机生成用户名(长度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);

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!

Statement:
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