支付宝上领取的优惠券扫码使用的时候可以生成 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
|