关于php的uniqid生成唯一ID的疑问

如下图,md5不是依赖输入么?为什么加md5就能绝对唯一了?求大神解答!

关于php的uniqid生成唯一ID的疑问


回答:

终于自己找到原因了,md5(uniqid(mt_rand(), true)),这个其实就是双随机+时间戳生成的唯一id,基本上,这个算法在很大程度上能保证唯一性了,但确实存在碰撞的可能。
关于php的uniqid生成唯一ID的疑问

结论:
1、md5(uniqid(mt_rand(), true)) 理论上确实存在碰撞可能
2、小公司放心用,大厂就谨慎使用


回答:

md5(uniqid(mt_rand(), true))


回答:

PHP 又不是没有官方手册,为啥要看二手的资料呢……

谁也没说你百度出来的结果就一定都是对的。

Warning: This function tries to create unique identifier, but it does not guarantee 100% uniqueness of return value.

警告:此函数尽可能会创建唯一识别符,但它不保证返回值百分百唯一。

https://www.php.net/manual/en...

P.S. 任何只依赖伪随机数发生器的算法,都无法做到“真·唯一”,只能尽可能降低碰撞概率。


回答:

要想尽可能保证唯一性的话,那当然是使用雪花算法了。

以上是 关于php的uniqid生成唯一ID的疑问 的全部内容, 来源链接: utcz.com/a/158129.html

回到顶部