PHP生成随机密码的几种方法

前端之家收集整理的这篇文章主要介绍了PHP生成随机密码的几种方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

方法一:

function create_password($pw_length = 8)
{
  $randpwd = '';
  for ($i = 0; $i < $pw_length; $i++) 
  {
    $randpwd .= chr(mt_rand(33,126));
  }
  return $randpwd;
}
// 调用函数,传递长度参数$pw_length = 6
echo create_password(6);

方法二:

function generate_password( $length = 8 ) {
  // 密码字符集,可任意添加你需要的字符
  $chars = '[email protected]#$%^&*()-_ []{}<>~`+=,.;:/?|';
  $password = '';
  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;
}

方法三:

function make_password( $length = 8 )
{
  // 密码字符集,可任意添加你需要的字符
  $chars = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','!','@','#','$','%','^','&','*','(',')','-','_','[',']','{','}','<','>','~','`','+','=',','.',';',':','/','?','|');
  // 在 $chars 中随机取 $length 个数组元素键名
  $keys = array_rand($chars,$length); 
  $password = '';
  for($i = 0; $i < $length; $i++)
  {
    // 将 $length 个数组元素连接成字符串
    $password .= $chars[$keys[$i]];
  }
  return $password;
}

方法四:

function get_password( $length = 8 ) 
{
    $str = substr(md5(time()),6);
    return $str;
}

时间效率对比

<?PHP
function getmicrotime()
{
    list($usec,$sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
}
 
// 记录开始时间
$time_start = getmicrotime();
    
// 这里放要执行的PHP代码,如:
// echo create_password(6);
 
// 记录结束时间
$time_end = getmicrotime();
$time = $time_end - $time_start;

 // 输出运行总时间 
echo "执行时间 $time seconds";
?>

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

猜你在找的PHP相关文章