我正在开发基于企业的应用程序。这里当最终用户通过此应用程序注册时,我将给出一个唯一的随机数(8位), 我曾经生成一个8位数字并邮寄给他。
期望:
我想为每个注册用户创建唯一的号码。它应该是随机数
我已经实现了随机数生成器,但它并不是唯一的。 如果有人知道请帮我解决这个而不是随机数发生器,任何建议......?
答案 0 :(得分:2)
有几个选项,如uniqid
,可生成唯一标识符。但是,uniqid
已被证明在某些情况下会导致碰撞。在函数调用中添加true
将添加熵以降低冲突量。不过,我建议你选择random_bytes
或openssl_random_pseudo_bytes
,因为他们会更好。 : - )
答案 1 :(得分:1)
您应该生成通用唯一标识符(UUID)。 ramsey/uuid图书馆是一个很好的工具。使用UUID(例如user_uuid)将另一列添加到“users”表中。生成一个新的UUID并将值保存在那里。
示例:
use Ramsey\Uuid\Uuid;
// Generate a version 4 (random) UUID object
$uuid4 = Uuid::uuid4();
echo $uuid4->toString(); // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a