Home > php教程 > PHP源码 > 密码动态生成(复杂、纯英文、纯数字)

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

PHP中文网
Release: 2016-05-25 17:10:50
Original
1262 people have browsed it

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

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 == &#39;CHAR&#39;){
            $is_numer = 1;
        }
        //判断是否出现字符了
        if(($is_abc <> 1 && preg_match(&#39;/[a-zA-Z]/&#39;,$tmp)) || $format == &#39;NUMBER&#39;){
            $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,&#39;NUMBER&#39;);
    echo "
";
}
Copy after login

                   

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template