温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP如何生成随机密码

发布时间:2021-07-02 15:35:09 来源:亿速云 阅读:176 作者:chen 栏目:开发技术

本篇内容主要讲解“PHP如何生成随机密码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP如何生成随机密码”吧!

类代码:

<?php /**  * PHP - Password Generator Class  * Version 1.0.0  *  */   if (@!is_object($passGen) || !isset($passGen)) {   $passGen = new Password; }   class Password {     /**    * 大写字母 A-Z    *    * @var array    */   protected $uppercase_chars;     /**    * 小写字母 a-z    *    * @var array    */   protected $lowercase_chars;     /**    * 阿拉伯数字 0-9    *    * @var array    */   protected $number_chars;     /**    * 特殊字符    *    * @var array    */   protected $special_chars;     /**    * 其他特殊字符    *    * @var array    */   protected $extra_chars;     /**    * 最终用来生成密码的所有字符    *    * @var array    */   protected $chars = array();     /**    * 密码长度    *    * @var array    */   public $length;     /**    * 是否使用大写字母    *    * @var boolean    */   public $uppercase;     /**    * 是否使用小写字母    *    * @var boolean    */   public $lowercase;     /**    * 是否使用阿拉伯数字    *    * @var boolean    */   public $number;     /**    * 是否使用特殊字符    *    * @var boolean    */   public $special;     /**    * 是否使用额外的特殊字符    *    * @var boolean    */   public $extra;     /**    * 初始化密码设置    *    * @param int $length    */   function Password($length = 12)   {     $this->length = $length;           $this->configure(true, true, true, false, false);   }     /**    * 配置    */   function configure($uppercase = false, $lowercase = false, $number = false,             $special = false, $extra = false   ) {     $this->chars = array();       $this->upper_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"                 );     $this->lower_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"                 );     $this->number_chars = array(                  "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"                 );     $this->special_chars = array(                  "!", "@", "#", "$", "%", "^", "&", "*", "(", ")"                 );     $this->extra_chars  = array(                  "[", "]", "{", "}", "-", "_", "+", "=", "<",                  ">", "?", "/", "`", "~", "|", ",", ".", ";", ":"                 );       if (($this->uppercase = $uppercase) === true) {       $this->chars = array_merge($this->chars, $this->upper_chars);     }     if (($this->lowercase = $lowercase) === true) {       $this->chars = array_merge($this->chars, $this->lower_chars);     }     if (($this->number = $number) === true) {       $this->chars = array_merge($this->chars, $this->number_chars);     }     if (($this->special = $special) === true) {       $this->chars = array_merge($this->chars, $this->special_chars);     }     if (($this->extra = $extra) === true) {       $this->chars = array_merge($this->chars, $this->extra_chars);     }       $this->chars = array_unique($this->chars);   }       /**    * 从字符列中生成随机密码    *    * @return string    **/   function generate()   {     if (empty($this->chars)) {       return false;     }       $hash    = '';     $totalChars = count($this->chars) - 1;           for ($i = 0; $i < $this->length; $i++) {       $hash .= $this->chars[$this->random(0, $totalChars)];     }       return $hash;   }     /**    * 生成随机数字    *    * @return int    */   function random($min = 0, $max = 0)   {     $max_random = 4294967295;       $random = uniqid(microtime() . mt_rand(), true);     $random = sha1(md5($random));       $value = substr($random, 0, 8);     $value = abs(hexdec($value));       if ($max != 0) {       $value = $min + ($max - $min + 1) * $value / ($max_random + 1);     }       return abs(intval($value));   } }

调用:

<?php   include_once 'password.class.php';   echo $passGen->generate();   //FS4yq74e2LeE

到此,相信大家对“PHP如何生成随机密码”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI