生成随机唯一序列

时间:2013-01-15 00:03:30

标签: php mysql

我想构建一个令牌号码生成器。在每次通话中,应返回一个随机且唯一的8位数字。我正在使用PHP和MySQL。在MySQL中,我将有一个表格,我将在每次生成时插入新的序列。

如何在每次通话中生成新号码?

将从最终用户使用令牌来激活软件(并且将在1周后过期)。所以,我需要令牌是唯一的而不是顺序的。这更好地描述了我的需求。令牌格式只是数字,因此可以轻松拼写和输入。

即使令牌过期,我也不想在以后生成已生成的令牌。

谢谢

2 个答案:

答案 0 :(得分:3)

好的,所以这段代码不会将序列号放入数据库,但会返回8位数的序列号。如果您只想要数字,请将允许的字符变量更改为仅数字。

<?php

    function generate_serial_number() {

       $Allowed_Charaters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
       return substr(str_shuffle($Allowed_Charaters), 0, 8);

    }

?>

答案 1 :(得分:0)

我通常将http://php.net/manual/en/function.uniqid.php more_entropy 参数一起使用为true。