您的位置: 飞扬精品软件园 >> 文章中心 >> 网络通讯 >> 网络应用 >> php生成随机密码的几种方法

相关文章链接

最新新闻资讯

    php生成随机密码的几种方法

    php生成随机密码的几种方法


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-08-29


    方法三

    1、预置一个的字符数组 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符

    2、通过array_rand()从数组 $chars 中随机选出 $length 个元素

    3、根据已获取的键名数组 $keys,从数组 $chars 取出字符拼接字符串。该方法的缺点是相同的字符不会重复取。

    function make_password( $length = 8 )
    {
        // 密码字符集,可任意添加你需要的字符
        $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
        'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's',
        't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D',
        'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O',
        'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z',
        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!',
        '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_',
        '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',',
        '.', ';', ':', '/', '?', '|');

        // 在 $chars 中随机取 $length 个数组元素键名
        $keys = ($chars, $length);

        $password = '';
        for($i = 0; $i < $length; $i++)
        {
            // 将 $length 个数组元素连接成字符串
            $password .= $chars[$keys[$i]];
        }

        return $password;
    }

    时间效率对比

    我们使用以下PHP代码,计算上面的 3 个随机密码生成函数生成 6 位密码的运行时间,进而对他们的时间效率进行一个简单的对比。

    <?php
    function getmicrotime()
    {
        list($usec, $sec) = explode(" ",microtime());
        return ((float)$usec + (float)$sec);
    }
     
    // 记录开始时间
    $time_start = getmicrotime();
       
    // 这里放要执行的PHP代码,如:
    // echo create_password(6);
     
    // 记录结束时间
    $time_end = getmicrotime();
    $time = $time_end - $time_start;

     // 输出运行总时间
    echo "执行时间 $time seconds";
    ?>

    最终得出的结果是

    方法一:9.8943710327148E-5 秒

    方法二:9.6797943115234E-5 秒

    方法三:0.00017499923706055 秒

    可以看出方法一和方法二的执行时间都差不多,而方法三的运行时间稍微长了点。

    原文:http://www.ludou.org/how-to-create-a-password-generator-using-php.html
     

    [1] [2]


查看所有评论

网友对php生成随机密码的几种方法 的评论

网名:
主题:
内容:
验证码: