PHP生成随机字符串

来源:互联网 发布:薛之谦淘宝店客服 编辑:程序博客网 时间:2024/05/17 04:08

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


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

方法一:基础方法

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

两种方法,殊途同归,都可以完成任务!微笑

0 0