类代码:
<?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