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技术PHP生成随机密码类分享,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。