php生成随机复杂度密码方法

作者:Liaodeity - 2017年03月27日

调用下面代码,设置其中的参数即可随机获取复杂度的字符串密码了

/**
 * 复杂度密码随机生成方法
 * @param  integer $lowerLength   [小写字母的个数]
 * @param  integer $upperLength   [大写字母的个数]
 * @param  integer $numLength     [数字的个数]
 * @param  integer $specialLength [特殊字符的个数]
 * @return [type]                 [description]
 */
function generate_password( $lowerLength = 3, $upperLength=2, $numLength = 4, $specialLength=1)
{
    // 密码字符集,可任意添加你需要的字符
    $chars = array();
    $chars[1] = 'abcdefghijklmnopqrstuvwxyz';
    $chars[2] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $chars[3] = '0123456789';
    $chars[4] = '!#$%^&*()-_ []{}<>~`+=,.;:/?|';
    $password = '';
    $length = array();
    $length[1] = $lowerLength;
    $length[2] = $upperLength;
    $length[3] = $numLength;
    $length[4] = $specialLength;
    foreach ($chars as $key => $char)
    {
        for ( $i = 0; $i < $length[$key]; $i++ )
        {
            // 这里提供两种字符获取方式
            // 第一种是使用 substr 截取$chars中的任意一位字符;
            // 第二种是取字符数组 $chars 的任意元素
            // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
            $password .= $char[ mt_rand(0, strlen($char) - 1) ];
        }
    }
    return str_shuffle($password);
}


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/539.html

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!