PHP生成随机密码类分享
类代码:
<?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