2

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

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

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

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

谢谢

4

2 回答 2

3

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

<?php

    function generate_serial_number() {

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

    }

?>
于 2013-01-15T00:59:41.120 回答
0

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

于 2013-01-15T10:21:52.670 回答