Php 创建唯一的跟踪代码

Php 创建唯一的跟踪代码,php,codeigniter,function,unique,Php,Codeigniter,Function,Unique,可能重复: 使用此功能,我可以创建唯一的跟踪代码? 你有什么建议? <?php echo strtotime("now");?> 字符数不超过10个。 请调用强大的示例该函数如何 获取基于当前时间的前缀唯一标识符 微秒 有了这些函数,您获得唯一代码的机会比像您在问题中那样只使用数据要好得多 另外,您可能想看看a是什么。如果两个用户同时访问,那么他们将拥有相同的跟踪代码。我建议使用Unix epoch作为mt\u rand()函数的种子 //mt_srand(time());

可能重复:

使用此功能,我可以创建唯一的跟踪代码?
你有什么建议?

<?php echo strtotime("now");?>

字符数不超过10个。 请调用强大的示例

该函数如何

获取基于当前时间的前缀唯一标识符 微秒

有了这些函数,您获得唯一代码的机会比像您在问题中那样只使用数据要好得多



另外,您可能想看看a是什么。

如果两个用户同时访问,那么他们将拥有相同的跟踪代码。我建议使用Unix epoch作为
mt\u rand()
函数的种子

//mt_srand(time()); Don't seed mt_rand
echo mt_rand();
您还可以使用它(或仅它的一部分,比如毫秒)作为随机数的前缀或后缀。但这将非常类似于
uniquid()
的功能


显然,播种既糟糕又无聊(见@Gumbo)。所以不要这样做。

这取决于你们网站的目的


通常,我还会添加用户IP。因此,如果两个人同时购买,您将不会有重叠。

为什么不使用数据库自动增量id值与
CUST
或类似
mt_rand
混合使用,以便在5.2.1之前使用相同的种子值初始化时生成相同的数字(请参阅)。除此之外,
时间
是可以预测的。@Gumbo:你有什么建议?@Julia Roberts:不要使用像
时间
这样可以预测的东西。一般来说,根本不需要为伪随机数生成器设置种子,因为这已经是自动完成的。@gumbonice catch。我已经更新了我的代码,所以用户之间几乎不可能发生冲突。至少,这看起来几乎是不可能的。@PhpMyCoder:现在这真的很荒谬。用户代理ID(如果存在)和IP地址以及两者的组合都不是唯一的。试想一下过滤用户代理ID的公司或大学网络。即使它们是唯一的,对其应用非双射函数也可能会违反它们的唯一性。使用经验证的解决方案(如
uniqid
)有什么问题?密码学的一条基本规则是:不要试图实现自己的密码系统。它是如何实现的?请解释并举例说明?