使用base62和base36编码数字

时间:2017-07-18 06:13:48

标签: php base

目前我有一些代码可以将数字转换为base62格式

这样可以正常工作,但是当将数据放入数据库时​​,最终可能会有两个相同的base62字符串(但具有不同的情况)

eg. SsUTF1 and Ssutf1

要解决这个问题,base36是base62的可行替代方案吗?我对此的理解非常有限,因为base36不会生成相同的字符串,但另一方面,我假设较大数字的字符长度在基数为36时可能比基数为62更长?

如果数据库中的字符串已经是base62,那么在切换到base36之后是否可能最终得到重复项?鉴于字符串将从中导出的基数永远不会相同。

1 个答案:

答案 0 :(得分:1)

鉴于基数不同,它的base36表示将始终不同。如果使用区分大小写或二进制比较方法对它进行比较,base62也是如此。

同样号码的base36表示也可能比base62长。假设我们有10个职位,这意味着我们可以代表:

  • base36 36E10 = 3 656 158 440 062 976种可能性
  • base62 62E10 = 839 299 365 868 340 224种可能性

希望得到这个帮助。