<?php
/**
*PHP-PasswordGeneratorClass
*Version1.0.0
*
*/
if(@!is_object($passGen)||!isset($passGen)){
$passGen=newPassword;
}
classPassword
{
/**
*大写字母A-Z
*
*@vararray
*/
protected$uppercase_chars;
/**
*小写字母a-z
*
*@vararray
*/
protected$lowercase_chars;
/**
*阿拉伯数字0-9
*
*@vararray
*/
protected$number_chars;
/**
*特殊字符
*
*@vararray
*/
protected$special_chars;
/**
*其他特殊字符
*
*@vararray
*/
protected$extra_chars;
/**
*最终用来生成密码的所有字符
*
*@vararray
*/
protected$chars=array();
/**
*密码长度
*
*@vararray
*/
public$length;
/**
*是否使用大写字母
*
*@varboolean
*/
public$uppercase;
/**
*是否使用小写字母
*
*@varboolean
*/
public$lowercase;
/**
*是否使用阿拉伯数字
*
*@varboolean
*/
public$number;
/**
*是否使用特殊字符
*
*@varboolean
*/
public$special;
/**
*是否使用额外的特殊字符
*
*@varboolean
*/
public$extra;
/**
*初始化密码设置
*
*@paramint$length
*/
functionPassword($length=12)
{
$this->length=$length;
$this->configure(true,true,true,false,false);
}
/**
*配置
*/
functionconfigure($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);
}
/**
*从字符列中生成随机密码
*
*@returnstring
**/
functiongenerate()
{
if(empty($this->chars)){
returnfalse;
}
$hash='';
$totalChars=count($this->chars)-1;
for($i=0;$i<$this->length;$i++){
$hash.=$this->chars[$this->random(0,$totalChars)];
}
return$hash;
}
/**
*生成随机数字
*
*@returnint
*/
functionrandom($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);
}
returnabs(intval($value));
}
}
调用:
<?php
include_once'password.class.php';
echo$passGen->generate();
//FS4yq74e2LeE
|