ITPub博客

首页 > IT职业 > IT生活 > PHP 随机用户名账号的生成

PHP 随机用户名账号的生成

IT生活 作者:yuanxueming 时间:2021-09-09 09:15:40 0 删除 编辑


随机生成难点是在于如何避免碰撞,有人说用md5,GUID这些机制啊,当然可以,但是做为账号,看着有乱,而且生成位数也过长。



本方法只需要解决1秒内的并发碰撞就可以,因为固定头部采用的是unixtime时间,精确到秒,超过1秒,这个头部的时间肯定变化了。同时本方法也可以用户随机订单编号的生成。



测试条件是用循环创建1万个随机账号(毫秒级),0碰撞,10万个大约有0-3个碰撞。应该没有哪个互联网公司会在瞬间同时创建这么多账号,所以足够应付数十亿PV这么大的规模了。



~~~.java

// 自动生成随机用户名

// 测试,循环创建1万个随机账号,0碰撞,10万大约0-3个碰撞,足够应付未来数十亿级PV

private function genUserNumber()

{

$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

$username = "";

for ( $i = 0; $i

{

$username .= $chars[mt_rand(0, strlen($chars))];

}

return strtoupper(base_convert(time() - 1420070400, 10, 36)).$username;

}

~~~

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2687/viewspace-2809096/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-25

  • 博文量
    89
  • 访问量
    819