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

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

PHP中文网
PHP中文网Original
2016-05-25 17:10:501263Durchsuche

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 "
";
}

                   

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php+js液晶时钟Nächster Artikel:coreseek中的一个小东西