PHP生成随机字符串

gooood个人博客网站

php

生成随机字符串,一般是大小写英文字母与数字混合或者单纯数字排列组合,通常用于数据库保存账户密码的时候,密码加密前拼接“加噪”干扰字符串,然后进行加密。保证密码的安全性。
话不多说,直接贴方法代码:

方法一:基础方法
/**
 * 生成随机字符串
 * @param  integer $length  随机字符串长度
 * @param  bool    $numeric 是否生成数字串
 * @return string          返回的字符串
 */
function getRand($length=6,$numeric = false){

$str="0 1 2 3 4 5 6 7 8 9 q w e r t y u i o p a s d f g h j k l z x c v b n m Q W E R T Y U I O P A S D F G H J K L Z X C V B N M";
if($numeric){
$str="0 1 2 3 4 5 6 7 8 9";
}

$arr=explode(' ', $str);
shuffle($arr);
$str=implode('', $arr);
return substr($str,0,$length);
}

方法二:高级方法
/**
 * 生成随机字符串
 * @param  integer $length  随机字符串长度
 * @param  bool    $numeric 是否生成数字串
 * @return string          返回的字符串
 */
function random($length, $numeric = FALSE) {
$seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
$seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));
if ($numeric) {
$hash = '';
} else {
$hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
$length--;
}
$max = strlen($seed) - 1;
for ($i = 0; $i < $length; $i++) {
$hash .= $seed{mt_rand(0, $max)};
}
return $hash;
}
两种方法,殊途同归,都可以完成任务!

本文内容由用户注册发布,仅代表作者或来源网站个人观点,不代表本网站的观点和立场,与本网站无关。本网系信息发布平台,仅提供信息存储空间服务,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。如因作品内容侵权需删除与其他问题需要同本网联系的,请尽快通过本网的邮箱或电话联系。 
THE END
分享
二维码
< <上一篇
下一篇>>