1

我正在开发一个私人消息系统,我想分配一个唯一的对话号码,以便我可以识别是否有多个用户参与了同一个对话。我正在考虑像这样分配发送消息的人的用户 ID + microtime()

$conversation_number =  md5($_POST['user_id']+microtime());

此代码是否始终源自唯一编号,或者也可能意外地为后续消息生成相同的编号?

4

3 回答 3

2

您可以使用uniqid,它用于生成唯一 ID。

于 2012-09-29T14:38:19.897 回答
1

为什么不使用UniqId()函数?

于 2012-09-29T14:38:43.013 回答
1

我认为phpuniqid就足够了

来自 PHP 文档

如果设置为 TRUE,uniqid() 将在返回值的末尾添加额外的熵(使用组合的线性同余生成器),这增加了结果唯一的可能性

尝试

  uniqid('id', true)

但是,在 32 位十六进制值 (16^32) 中大约有 3.402823669209387e+38 个不同的值,md5您的几率非常小,以至于会有相同的重复

于 2012-09-29T14:39:26.420 回答