2018-08-11 23:26:31
生成随机字符串,一般是大小写英文字母与数字混合或者单纯数字排列组合,通常用于数据库保存账户密码的时候,密码加密前拼接“加噪”干扰字符串,然后进行加密。保证密码的安全性。
话不多说,直接贴方法代码:
方法一:基础方法
/**
* 生成随机字符串
* @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;
}
两种方法,殊途同归,都可以完成任务!
文章来源:网络
最后生成于 2024-05-27 22:52:38
热门推荐:
此内容有帮助 ?
0