move aiid2regcode/regcode2aiid to core.tool

This commit is contained in:
陆柯 2021-09-24 16:43:29 +08:00
parent f0d90036b1
commit cd37a2b9bb

View File

@ -1285,55 +1285,6 @@ class TICrypto {
return null
}
/**
* 用户编号转邀请码
*
* @static
* @param {*} aiid
* @return {*}
* @memberof TICrypto
*/
static aiid2regcode(aiid) {
const alphabet = 'e5fcdg3hqa4b1n0pij2rstuv67mwx89klyz'
const base = 16367
let num = (aiid + base) * (base - alphabet.length)
let code = ''
let mod
while (num > 0) {
mod = num % alphabet.length
num = (num - mod) / alphabet.length
code = code + alphabet[mod] // 倒序存放
}
return code
}
/**
* 邀请码转用户编号
*
* @static
* @param {*} code
* @return {*}
* @memberof TICrypto
*/
static regcode2aiid(code) {
if (typeof code === 'string' && /^[a-zA-Z0-9]+$/.test(code)) {
const alphabet = 'e5fcdg3hqa4b1n0pij2rstuv67mwx89klyz'
const base = 16367
code = code.toLowerCase()
let len = code.length
let num = 0
for (let i = 0; i < len; i++) {
num += alphabet.indexOf(code[i]) * Math.pow(alphabet.length, i)
}
let aiid = num / (base - alphabet.length) - base
if (aiid >= 0 && Number.isInteger(aiid)) {
// 允许 aiid===0当第一个用户aiid==1登录时需要一个系统默认的邀请码。
return aiid
}
}
return null // null 代表一切非法的regcode
}
/**
* 压缩公钥
*