返回顶部

收藏

密码动态生成(复杂、纯英文、纯数字)

更多
function randpw($len=8,$format='ALL'){
    $is_abc = $is_numer = 0;
    $password = $tmp ='';    
    switch($format){
        case 'ALL':
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        break;
        case 'CHAR':
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
        break;
        case 'NUMBER':
            $chars='0123456789';
        break;
        default :
            $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        break;
    }
    mt_srand((double)microtime()*1000000*getmypid());

    //组合字符串
    while(strlen($password)<$len){
        //随机字符或数字
        $tmp =substr($chars,(mt_rand()%strlen($chars)),1);
        //判断是否出现数字了
        if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){
            $is_numer = 1;
        }
        //判断是否出现字符了
        if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){
            $is_abc = 1;
        }
        //连接
        $password.= $tmp;
    }
    //判断条件是否符合,或者重新生成
    if($is_numer <> 1 || $is_abc <> 1 ||  empty($password) ){
        $password = randpw($len,$format);
    }

    return $password;
}

for($i = 0 ; $i < 10; $i++){
    echo randpw(8,'NUMBER');
    echo "<br>";
}
//该片段来自于http://outofmemory.cn

标签:php,安全

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2014-07-08 19:36:49aes 加密类 by 南宫傲
  2. 2014-07-17 19:24:53从360提供的PHP防SQL注入代码改成的一个类 by loking
  3. 2014-07-25 15:45:41php-md5变换算法之密文分割MD5 by 梁方
  4. 2014-07-25 20:41:09产生任意长度的字符串+数字随机数 by 傅小黑
  5. 2014-10-07 20:41:45php防止页面刷新代码 by loking
  6. 2014-11-22 15:21:26XSS安全过滤 by lihuibng
  7. 2014-11-25 14:14:15检验登陆类 by Flio
  8. 2014-07-14 20:01:15php 图片地址处理 by Linland
  9. 2014-07-18 20:05:42检查字符串中是否有外链 by 杨德伟
  10. 2014-07-26 15:01:56遍历树的方法二 by Flio
  11. 2014-07-26 19:45:59php可以逆转的加密类 by 南宫傲

发表评论