PHP中快速生成随机密码的几种方式
思路是这样的,密码通常是英文字母和数字的混合编排,我们可以借助随机函数rand函数随机的选择一个长字符串的一部分。
functionrandom_code($length=8,$chars=null){ if(empty($chars)){ $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; } $count=strlen($chars)-1; $code=''; while(strlen($code)<$length){ $code.=substr($chars,rand(0,$count),1); } return$code; } echorandom_code;//A1zYbN5X
我们使用rand函数的目的是为了产生随机的字符串,但是如果有一个函数可以做到的话,我们就没有必要使用rand函数了。
functionrandom_char($length=8,$chars=null){ if(empty($chars)){ $chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; } $chars=str_shuffle($chars); $num=$length可以看到不使用rand函数,而是使用str_shuffle函数,好处是大大减少了代码量。
更近一部的,我们的函数不仅可以生成随机的密码,还可以生成短信验证码,以及高强度的服务器登录密码。
functionrandom_code_type($length=8,$type='alpha-number'){ $code_arr=array( 'alpha'=>'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'number'=>'0123456789', 'sign'=>'#$%@*-_', ); $type_arr=explode('-',$type); foreach($type_arras$t){ if(!array_key_exists($t,$code_arr)){ trigger_error("Cannotgeneratetype($t)code"); } } $chars=''; foreach($type_arras$t){ $chars.=$code_arr[$t]; } $chars=str_shuffle($chars); $number=$length>strlen($chars)-1?strlen($chars)-1:$length; returnsubstr($chars,0,$number); } echorandom_code_type(8,"alpha-number-sign");#kXM*mC$S以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。