文章归档友情连接照片地图

PHP生成随机字符串的几种方法

分类:PHP编程  作者:rming  时间:2014-07-22

#方法1

function make_password( $length = '8'){
$range = array_merge( range('a', 'z') , range('A', 'Z') , range('0','9'));
shuffle($range);
$range = array_slice($range,0, $length);
$password = implode('' , $range);
return $password;
}

评价:看起来比较舒服,可以根据需求 自定义字符集,缺点是效率低。

#方法2

function generate_password( $length = 8 ) {
// 密码字符集,可任意添加你需要的字符
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
$password = '';
$chars_max_index = strlen($chars)-1;
for ( $i = 0; $i < $length; $i++ )
{
// 这里提供两种字符获取方式
// 第一种是使用 substr 截取$chars中的任意一位字符;
// 第二种是取字符数组 $chars 的任意元素
// $password .= substr($chars, mt_rand(0, $chars_max_index ), 1);
$password .= $chars[ mt_rand(0, $chars_max_index ) ];
}
return $password;
}

评价:高效,因为仅使用了一个mt_rand()函数;可以根据需求 自定义字符集,不过看起来有点乱。

#方法3

function create_password($pw_length = 8)
{
$randpwd = '';
for ($i = 0; $i < $pw_length; $i++)
{
$randpwd .= chr(mt_rand(33, 126));
}
return $randpwd;
}

评价:非常高效,利用ASCII码和mt_rand()chr()完成随机字符串;可以根据需求 自定义字符集。

#方法4

function get_password( $length = 8 )
{
$str = substr(md5(time()), 0, 6);
return $str;
}

评价:尼玛。



提交评论