根据 id 生成唯一短字符串(防止用户 id 等暴露), 用 hashids 稳妥不?

2018-12-19 11:42:03 +08:00
 kkk212
https://hashids.org/
Hashids is a small open-source library that generates short, unique, non-sequential ids from numbers.

It converts numbers like 347 into strings like “ yr8 ”, or array of numbers like [27, 986] into “ 3kTMd ”.

You can also decode those ids back. This is useful in bundling several parameters into one or simply using them as short UIDs.

比如字符串长度设置 4-6 位,等用户量大了接近 4-6 位字符能表示的用户量时, 会不会出现重复的。
3553 次点击
所在节点    PHP
2 条回复
jifengg
2018-12-19 14:40:52 +08:00
如果区分大小写,26 个字母+10 个数字,6 位可以有 (26+26+10)^6=56800235584,568 亿个不重复的字符串。
但是位数少了有一个问题就是重复率会增加,需要排重的时间会增加。可以的情况下,位数尽可能多一些。
trowa8509
2018-12-21 09:31:12 +08:00
用 JWT 吧。

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

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

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

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

© 2021 V2EX