专业编程基础技术教程

网站首页 > 基础教程 正文

根据id生成邀请码,后台可解码(im的邀请码)

ccvgpt 2024-07-23 01:22:30 基础教程 74 ℃

由于一般客户端调用接口使用id作为参数,而id具有一定的连续性规律,可以通过尝试递增id的方式来获取接口的数据

为此我们可以设置一种加密方法来解决,对id数字进行加密,客户端传入加密串,后台对这个加密串进行解密

根据id生成邀请码,后台可解码(im的邀请码)

//根据id生成加密串

function createCode($id) {

$source_string = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ';

$num = $id;

$code = '';

while ($num > 0) {

$mod = $num % 35;

$num = ($num - $mod) / 35;

$code = $source_string[$mod] . $code;

}

if (empty($code[3])) {

$code = str_pad($code, 4, '0', STR_PAD_LEFT);

}

return $code;

}

//根据加密串解析出id

function decryptCode($code) {

$source_string = 'E5FCDG3HQA4B1NOPIJ2RSTUV67MWX89KLYZ';

if (strrpos($code, '0') !== false) {

$code = substr($code, strrpos($code, '0') + 1);

}

$len = strlen($code);

$code = strrev($code);

$num = 0;

for ($i = 0; $i < $len; $i++) {

$num += strpos($source_string, $code[$i]) * pow(35, $i);

}

return $num;

}

Tags:

最近发表
标签列表