![]() | 1 alexrezit 2013-07-16 09:25:46 +08:00 字母 + 数字, 递增... |
![]() | 2 subpo PRO 谷歌uuid,会有各种语言下的解决方案 |
![]() | 3 lichao 2013-07-16 09:27:18 +08:00 不区分大小写的话,可以使用 36 进制 |
![]() | 4 rppig42 OP |
![]() | 5 subpo PRO ![]() @rppig42 其实我昨天才问这个问题,分享两个挺hack的写法给你 (((1+Math.random())*0x10000)|0).toString(16).substring(1) Math.random().toString(32).substr(2) |
![]() | 6 xing393939 2013-07-16 09:52:40 +08:00 我有个比较弱的实现:http://www.v2ex.com/t/66561#reply28 其实就是密码表,但是这个贴说密码表近似于明文:http://www.v2ex.com/t/75769 或者uuid:http://wenku.baidu.com/view/482a9d4a2e3f5727a5e96226 当然仅仅用于使网站的id的自增情况不让人知道,这样的应该够用了/div> |
![]() | 7 reorx 2013-07-16 13:01:50 +08:00 |
![]() | 8 bergkamp 2013-07-16 14:06:22 +08:00 base62encode |
![]() | 9 msg7086 2013-07-16 16:04:03 +08:00 以前在jSharer做过整数到短地址的映射。说白了就是base62编码,但是可以改变码表顺序做出自己的映射来。 |
![]() | 10 darasion 2013-07-16 16:17:09 +08:00 ![]() 表示同样的数字(比如数据库ID): 2 进制很长很长,{0, 1} 8 进制稍微短了一些,{0~8} 10进制比八进制短,{0~9} 16进制更短,{0~9, a~f} .... 以此类推.... 62进制(就是楼上很多人说的base62),{0~9,a~z,A~Z} 加URL中允许使用的上减号和下划线,甚至也可以(base64),{0~9,a~z,A~Z,-,_} 其实就是进制转换了,没啥高科技。 |
![]() | 11 Actrace 2013-07-16 16:57:06 +08:00 把主键ID转换成64进制字符串. |
![]() | 12 openroc 2013-07-16 16:58:36 +08:00 看一下python的hash函数的源码 |
![]() | 13 avenger 2019-04-30 01:43:05 +08:00 base_convert($num, 10, 36) |