生成随机唯一序列

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

如何在每次调用中生成新数字?</ p>

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

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

谢谢</ p>
</ div>

展开原文

原文

I want to build a token number generator. In each call, a random and unique 8-digit number should be returned. I am using PHP and MySQL. In MySQL I'll have a table where I will insert the new serial, each time it will be generated.

How can I generate new numbers in each call?

Tokens will be used from end-users to activate software (and will expire, e.g. after 1 week). So, I need tokens to be unique and not sequential. This describes better my needs. Token format will be just numbers, so that it can be easily spelled and typed.

Even if tokens expire, I do not want to generate an already generated token at a later time.

Thank you

doulouxun6756
doulouxun6756 我觉得你没事。我根据你的评论修改了我的问题。
7 年多之前 回复
dongming8867
dongming8867 同一句中的“随机”,“独特”和“未知数量”(由问题暗示)没有意义。你很可能想要不可预测和独特。
7 年多之前 回复
doulu6929
doulu6929 我知道序列号的定义,我指出这不是OP所要求的;)
7 年多之前 回复
dongxinxin7809
dongxinxin7809 序列号不应该是随机的,它们应该自动增加以允许您跟踪历史记录,我拥有一个供暖和空运公司。我们每天为单位生产生成连续出版物。我们的号码还包括日期代码。
7 年多之前 回复
doubang4881
doubang4881 从技术上讲,短语“序列号”表示一系列增加的数字。即不是随机的。
7 年多之前 回复
dongxiejie9387
dongxiejie9387 为什么随意?为何数?
7 年多之前 回复
dongwaner1367
dongwaner1367 虽然这会产生唯一的id,但它们几乎不能被描述为随机的
7 年多之前 回复
duagfgfn1981
duagfgfn1981 这是有效的11223344吗?或者所有数字都是唯一的12345678?
7 年多之前 回复
doushang8846
doushang8846 toolong
7 年多之前 回复

2个回答



好的,所以这段代码不会将序列号放入数据库,但会返回8位数的序列号。 如果你想只需要数字就可以将允许的字符变量改为数字。</ p>

 &lt;?php 

function generate_serial_number(){

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

}

?&gt;
</ code> </ pre>
</ div>

展开原文

原文

Ok, so this code does not put the serial number into a database but it will return a serial number 8 digits long. If you want just numbers change the allowed characters variable to just numbers.

<?php

    function generate_serial_number() {

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

    }

?>

douji9816
douji9816 too long
7 年多之前 回复



我通常使用 http://php.net/manual/en/function.uniqid.php more_entropy </ strong>参数为true。</ p>
</ div>

展开原文

原文

I usually use http://php.net/manual/en/function.uniqid.php with the more_entropy parameter to true.

dow72046
dow72046 脱掉它们。 使用preg_replace()。 但要注意,你可能会发生碰撞。
7 年多之前 回复
dtlh12053
dtlh12053 too long
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐