创建短(6个字符),随机且具有低碰撞概率的最佳方法是什么?我需要创建像bit.ly这样的短链接。
md5,sha1,uniqid等问题是它们不会生成大写字符,因此我正在寻找区分大小写的输出以获得更广泛的可能值... < / p>
答案 0 :(得分:1)
我喜欢使用Hashids来做这件事:
Hashids是small open-source library,它可以从数字生成简短,唯一,非连续的ID。
它将像347这样的数字转换为像“yr8”这样的字符串,或者像[27,986]这样的数字数组转换为“3kTMd”。
您还可以解码这些ID。这可以将多个参数捆绑到一个参数中,或者简单地将它们用作短UID。
Hashids已被移植到多种语言including PHP。
(请注意,尽管有名称,Hashids并不是真正的哈希系统,因为它的设计是可逆的。)