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;
}
两种方法,殊途同归,都可以完成任务!
话不多说,直接贴方法代码:
方法一:基础方法
/**
* 生成随机字符串
* @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;
}
两种方法,殊途同归,都可以完成任务!
相关文章推荐
- PHP生成随机字符串的方法
- PHP开发程序:生成随机字符串的方法
- PHP生成随机字符串的三种方法
- PHP生成随机字符串,必须包含三项 大写小写数字
- 生成随机字符串和验证码的类的PHP实例
- PHP之生成不重复随机字符串
- php 生成随机字符串的简单函数
- PHP生成随机字符串
- PHP随机字符串生成代码(包括大小写字母)
- PHP生成随机字符串
- PHP 生成任意长度的随机字符串
- php生成随机字符串
- php生成指定位数的随机字符串
- PHP生成随机字符串的方法
- PHP生成随机字符串
- 随机字符串生成图片 PHP代码
- php 随机生成字符串
- PHP生成随机字符串(字母+数字)
- 生成随机字符串和验证码的类的PHP实例
- php生成随机字符串和验证码的类