有哪些能够生成随机不重复字符串的算法或者函数?

2016-05-18 16:22:50 +08:00
 Specs

有哪些能够生成随机不重复字符串的算法或者函数?最好是 PHP 中的~~

10717 次点击
所在节点    PHP
73 条回复
a591826944
2016-05-19 20:20:07 +08:00
@lslqtz 分布式同一时间 同一函数,生成的随机数字 /字符 是相同的 所以 后面 拼多少都没有用
zhicheng
2016-05-19 20:30:53 +08:00
说 MD5 慢的,你咋不上天, 10 亿也是秒级的。
icylord
2016-05-19 21:01:02 +08:00
UUID
jfcherng
2016-05-19 22:33:58 +08:00
有限長度與不重複不是明顯互斥嗎
miaotaizi
2016-05-20 09:38:34 +08:00
@Sunyanzi 开眼了, 看了你好多的评论, 你收徒弟么, 请收下我的膝盖, 我不想做那个四年都在做同一件事情的码农.
Specs
2016-05-20 09:49:36 +08:00
@AbrahamGreyson OK

@Sunyanzi 还可以这样~

@jfcherng 在不重复的情况下尽量看起来随机吧~
juice
2016-05-20 11:31:05 +08:00
可以参考 twitter 的 Snowflake 算法
necomancer
2016-05-20 12:22:10 +08:00
UUID 吧, 重复概率极小
Sunyanzi
2016-05-20 23:39:59 +08:00
@miaotaizi 收呀 ... 我一直有琢磨着拉个群讲讲课什么的 ... 但一直没时间来做 ... 过阵子看看吧 ..?

@juice @AbrahamGreyson Snowflake 算法从本身的设计上并没有避免多线程并发时重复生成的问题 ...

@Specs 如果最终你会把内容存在数据库的话 ... 那么给相关字段上唯一索引然后生成随机字符串往里插就是 ...

只要字符串长度足够就可以完全不用管是否会重复 ... 如果插不进去就重新随机一次再插 ... 直到成功为止 ...
miaotaizi
2016-05-23 11:03:40 +08:00
@Sunyanzi 真的可以吗? 期待你开课. (别逗我, 我是认真的)
mingyun
2016-07-24 17:03:08 +08:00
@barbery 这个得 php7
Sunyanzi
2017-02-09 21:15:57 +08:00
@miaotaizi 那个啥 ... 我决定尝试性的瞎讲一下啦 ... 具体参考 /t/339287 ...
miaotaizi
2017-02-10 13:54:12 +08:00
@Sunyanzi 真感激,这么久了还记得我。一定来!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279578

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX