如何为symfony中的每个用户生成唯一的随机值并将其添加到数据库

时间:2017-10-23 07:24:14

标签: php symfony

我正在开发基于企业的应用程序。这里当最终用户通过此应用程序注册时,我将给出一个唯一的随机数(8位), 我曾经生成一个8位数字并邮寄给他。

期望:

我想为每个注册用户创建唯一的号码。它应该是随机数

我已经实现了随机数生成器,但它并不是唯一的。 如果有人知道请帮我解决这个而不是随机数发生器,任何建议......?

2 个答案:

答案 0 :(得分:2)

有几个选项,如uniqid,可生成唯一标识符。但是,uniqid已被证明在某些情况下会导致碰撞。在函数调用中添加true将添加熵以降低冲突量。不过,我建议你选择random_bytesopenssl_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