php 生成指定长度与强度的密码

发布时间:2020-12-16编辑:脚本学堂
本文介绍下,用php生成指定长度与强度密码的一例代码,有需要的朋友参考下。

以下代码可以生成指定长度的用户密码,还可以设定密码强度,包括小写字母密码、大小写字母密码、大小写字母与数字密码、大小写字母与数字 特殊符号等组成的密码。

代码:

<?php
/**
* 函数:generateRandpassword
* 参数:$size 密码长度 $power密码强度 
* 功能:生成密码的函数
* 编辑:www.jb200.com
*/
function generateRandpassword($size=9, $power=0) {
    $vowels = 'aeuy';
    $randconstant = 'bdghjmnpqrstvz';
    if ($power & 1) {
        $randconstant .= 'BDGHJLMNPQRSTVWXZ';
    }
    if ($power & 2) {
        $vowels .= "AEUY";
    }
    if ($power & 4) {
        $randconstant .= '23456789';
    }
    if ($power & 8) {
        $randconstant .= '@#$%';
    }

    $Randpassword = '';
    $alt = time() % 2;
    for ($i = 0; $i < $size; $i++) {
        if ($alt == 1) {
            $Randpassword .= $randconstant[(rand() % strlen($randconstant))];
            $alt = 0;
        } else {
            $Randpassword .= $vowels[(rand() % strlen($vowels))];
            $alt = 1;
        }
    }
    return $Randpassword;
}
?>