数据库中用户有ID吗?如果有的话,直接将ID转为十六进制,可以表示16^6个用户,16777216,不要考虑太多.转换之后不足的前边用0补齐,或者直接加上16^5,解的时候再减掉,保证六位数.16进制用到的字母很少,你也可以用26字母+0~9来表示数字,也就是三十六进制,六位数有21亿. 需求应该是每个用户注册直接生成一个唯一的邀请码对吧?我提到的就是数据库唯一自增键作为邀请码了.不一定需要随机对不对?
6位,还要能解码。最好还是专门弄个表来存吧,或者用户表多加一个字段,不然,你这可以解码的需求太奇葩了。就算用base64 ,也只能最多存3位数字,也就是 0 - 999,不足的前面补零,比如 001 ,其次 base64后的 == 可以移除。
数据库中用户有ID吗?如果有的话,直接将ID转为十六进制,可以表示16^6个用户,16777216,不要考虑太多.
转换之后不足的前边用0补齐,或者直接加上16^5,解的时候再减掉,保证六位数.
16进制用到的字母很少,你也可以用26字母+0~9来表示数字,也就是三十六进制,六位数有21亿.
需求应该是每个用户注册直接生成一个唯一的邀请码对吧?我提到的就是数据库唯一自增键作为邀请码了.不一定需要随机对不对?