3-08 4,966 views
方法一
<?php
/**
* 生成永远唯一的激活码
* @return string
*/
function create_guid($namespace = null) {
static $guid = '';
$uid = uniqid ( "", true );
$data = $namespace;
$data .= $_SERVER ['REQUEST_TIME']; // 请求那一刻的时间戳
$data .= $_SERVER ['HTTP_USER_AGENT']; // 获取访问者在用什么操作系统
$data .= $_SERVER ['SERVER_ADDR']; // 服务器IP
$data .= $_SERVER ['SERVER_PORT']; // 端口号
$data .= $_SERVER ['REMOTE_ADDR']; // 远程IP
$data .= $_SERVER ['REMOTE_PORT']; // 端口信息
$hash = strtoupper ( hash ( 'ripemd128', $uid . $guid . md5 ( $data ) ) );
$guid = '{' . substr ( $hash, 0, 8 ) . '-' . substr ( $hash, 8, 4 ) . '-' . substr ( $hash, 12, 4 ) . '-' . substr ( $hash, 16, 4 ) . '-' . substr ( $hash, 20, 12 ) . '}';
return $guid;
}
//使用
echo $key = create_guid ();
?>
方法二
function make_coupon_card() {
$code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rand = $code[rand(0,25)]
.strtoupper(dechex(date('m')))
.date('d').substr(time(),-5)
.substr(microtime(),2,5)
.sprintf('%02d',rand(0,99));
for(
$a = md5( $rand, true ),
$s = '0123456789ABCDEFGHIJKLMNOPQRSTUV',
$d = '',
$f = 0;
$f < 8;
$g = ord( $a[ $f ] ),
$d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
$f++
);
return $d;
}
echo make_coupon_card();
方法三
function getRandomString($len, $chars=null)
{
if (is_null($chars)){
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
}
mt_srand(10000000*(double)microtime());
for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < $len; $i++){
$str .= $chars[mt_rand(0, $lc)];
}
return $str;
}