'verificationCode_'.str_random (15);

'verificationCode_'.str_random(15); 缓存以这个为键,同一时间段内注册人数多,能保证不重复?有点担心

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1
liyu001989

这是一道数学题 :

问:15 位的随机数,10 分钟内冲突的概率是多少。

解:

  1. 每一位可以使大小写字母及数字,26 + 26 + 10 = 62,同一时间产生一个相同字符串的概率是 1 / 62^15 的概率;
  2. 缓存时间是 10 分钟,假设每秒有 100 万并发(够大了吧),会生成 10 * 60 * 10^6 个随机字符串;
  3. 冲突的概率是 10 * 60 * 10^6 / 62^157.8 * 10^-19

如果觉得还可以更好,为什么不考虑一下 30 位的字符串。

另外即便冲突了,数据也不会错乱,用户只需要再次点一下发送按钮。。。

好像还是不够严谨,你可以算算 10 分钟之内生成的所有字符串,任意两个冲突的概率

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!