
支付宝上领取的优惠券扫码使用的时候可以生成 18 位的数字 id,之前了解的都是 64 位的 id 或者 Guid/UUiD,请问这类 18 的 Id 如何生成
1 ihuotui 2017-06-07 12:18:00 +08:00 via iPhone 参考微信消息 id |
2 skywalkboy OP @ihuotui 微信消息的是 16 位的数字吧,请教这个如何生成 |
3 leejanfin 2017-06-07 14:06:23 +08:00 via iPhone 先生成 uuid 然后设计一个算法转成 16 位的数字 ID ? |
4 skywalkboy OP @leejanfin 这个可以直接生成 16 位吧,不需要再通过 uuid |
5 honeycomb 2017-06-07 17:41:33 +08:00 via Android 可以看一下 UUID 的内部实现,JRE 的实现就是新建了一个 securerandom,导出 16 个字节,再把 UUID 格式 4 规定的 4 个比特替换成定值。 可以用类似的方法生成 18 位唯一 id |
6 honeycomb 2017-06-07 17:42:39 +08:00 via Android java.util.UUID.randomUUID() |
7 ihuotui 2017-06-07 18:34:26 +08:00 via iPhone @skywalkboy 参考思路啊,具体要什么自己变啊 |
8 yuhuan66666 2017-06-07 18:54:33 +08:00 via Android @honeycomb 生产中发现有时候又很高几率重复。 |
9 samray 2017-06-07 18:55:30 +08:00 |