看到有这种 11 个字符长度的唯一 ID,大家看看是什么通用的算法吗?好像不是 Mongo ObjectID 难道是 SnowFlake 吗?

2021-09-18 09:12:51 +08:00
 xiaoyanbot

https://readhub.cn/topic/89BXT60LLTp

https://news.ifeng.com/c/89c4AehVDYl

1180 次点击
所在节点    问与答
8 条回复
InDom
2021-09-18 09:28:26 +08:00
你看 89BXT60LLTp 像不像 5efc9d08bd02152f ???
timethinker
2021-09-18 10:05:31 +08:00
89BXT60LLTp 经过 Base64URL Decode 以后,得到一个长度为 64 位的二进制数据,十六进制表示为 0xF3D0574FAD0B2D3A,数据库里面用 bigint 可以存下( mysql ),如果 ID 前几位一致的话,说明可能是某种根据时间戳单调递增的生成算法来产生的,类似雪花 ID,根据起始时间和目标时间算出偏移时间差再加上其他的信息。
xiaoyanbot
2021-09-18 11:22:10 +08:00
@InDom 没明白, 请问两者的关联是?
find456789
2021-09-18 15:40:05 +08:00
有个东西叫 [hashids]( https://hashids.org/) 支持很多编程语言
xiaoyanbot
2021-09-18 17:38:49 +08:00
好像是 base62
xiaoyanbot
2021-09-18 19:22:56 +08:00
@qwe520liao

十六进制表示为 0xF3D0574FAD0B2D3A, 这个转为 10 进制是 17568638146089528634, 好像超过了 Java Long 的最大整数了
xiaoyanbot
2021-09-18 19:24:49 +08:00
比 Long 的 MAX VALUE ( 9223372036854775807 ) 多了一位
xiaoyanbot
2021-09-18 19:27:18 +08:00
@xiaoyanbot

bigint 可以存下, 难道说的是 无符号 big int ?

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

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

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

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

© 2021 V2EX