《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
高认可度评论:
只要订单号不重复 用md5也不是不能用
小聪明应该怎么做呢?
只要订单号不重复 用md5也不是不能用
没问题不就行吗。。
确实不合适。这玩意,我其实喜欢用 mongodb 的
_id
生成规则来实现订单号的生成。应该还好吧,会有什么问题吗?
和uuid_create() 生成的不是差不多的意思
使用MD5作为订单号并不是一个好的做法。MD5是一个散列函数,它被设计用于计算数据的散列值,并用于数据完整性校验等目的。将MD5作为订单号不仅容易导致不同订单产生相同的散列值(冲突),还容易被攻击者用暴力破解攻击破解出原始数据,从而影响订单的安全性。更好的做法是使用能够保证唯一性和随机性的订单号。
分享一下我的订单号生成规则,22 位,
2304180233303966728324
没太大问题,字段加个唯一索引,插到数据库之前做个检查,如果唯一建冲突就加个 salt,再 md5 一遍
确实有点骚
密码采用MD5常见,订单号还没见过这用的。
订单号一般并不采用 md5 , 哪怕顺序号都不用 md5 因为 md5 的订单号没意义没价值。但并不表示不能用。 另外, md5 的确是会撞号。但md5 足够稀疏了,撞的机会并不大。很可能从系统运行到系统被抛弃一次撞号都遇不到。
不影响使用
定式思维
只要能保证唯一就行,但是一般直接用 md5 ,会导致这个 订单号,没法直接知道含义,一般会采取字段拼接,比如我们项目中是这样的:
问题点不应该在撞库吧
有没有可能是刚毕业,只想着订单号唯一?
我都是时间 + 随机数 4-8 位左右,再加上 用户 id(左右补零保证长度)
这样除非用户自己同一秒之内并发, 并且生成的随机数还一样,否则肯定不会重复
虽然问题不大,但是不合适吧