php 生成游戏兑换码(礼包)方法
最近项目中要做礼包码生成,看了看网上的代码,可以使用php扩展unid
当然我这里并不是用的unid,而是使用的php自带的uniqid,人狠话不多。看代码
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。$uniqid = uniqid('gm',true); $param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].time().rand().$uniqid; $sha1 = sha1($param_string); for( $a = md5( $sha1, true ), $s = '0123456789abcdefghijklmnopqrstuvwxyz', $d = '', $f = 0; $f < 8; $g = ord( $a[ $f ] ), $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ], $f++ );
/** * 生成礼包接口 100W数据同时生成不重复 * @return string */ function sp_gm_get_gift_code() { $uniqid = uniqid('gm',true); $param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].time().rand().$uniqid; $sha1 = sha1($param_string); for( $a = md5( $sha1, true ), $s = '0123456789abcdefghijklmnopqrstuvwxyz', $d = '', $f = 0; $f < 8; $g = ord( $a[ $f ] ), $d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ], $f++ ); return $d; }
千万数据没测试,反正百万数据随便测试不会重复,8位兑换码也符合游戏或者其他场景中使用!
有用就用,没用别喷
效果如下图
function sp_gm_get_gift_code() {
$uniqid = uniqid('gm',true);
$param_string = $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'].$_SERVER['SERVER_SOFTWARE'].time().rand().$uniqid;
$sha1 = sha1($param_string);
for(
// $a = md5( $sha1, true ),//稍作修改
$a=$sha1,
$s = '0123456789abcdefghijklmnopqrstuvwxyz',
$d = '',
$f = 0;
$f < 12;//长度换成12位
$g = ord( $a[ $f ] ),
$d .= $s[ ( $g ^ ord( $a[ $f + 8 ] ) ) - $g & 0x1F ],
$f++
);
return $d;
}

更多精彩