您的位置:首页 > 编程语言 > PHP开发

PHP生成随机字符串

2017-03-08 11:03 162 查看
生成随机字符串,一般是大小写英文字母与数字混合或者单纯数字排列组合,通常用于数据库保存账户密码的时候,密码加密前拼接“加噪”干扰字符串,然后进行加密。保证密码的安全性。

话不多说,直接贴方法代码:

方法一:基础方法

/**
* 生成随机字符串
* @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;
}

两种方法,殊途同归,都可以完成任务!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: