HLJ 发布于
2018-08-11 23:26:31

PHP生成随机字符串

上一篇文章:

PHP获取用户IP地址

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

方法一:基础方法
/**
 * 生成随机字符串
 * @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;
}
两种方法,殊途同归,都可以完成任务!
文章来源:网络
最后生成于 2023-06-18 18:29:21
上一篇文章:

PHP获取用户IP地址

此内容有帮助 ?
0