PHP关于生成6位唯一固定邀请码,附带加密解密(终于可以不用存数据库啦)

现有一个需求,需要生成6位随机邀请码,不暴露用户ID,最好不需要存数据库。

其他都好说。主要是这个不存数据库,着实头疼。也翻了很多文章,带有加密解密的函数太低级了,前面一堆0,很容易推算出来字典。

现在说说思路:

1、生成0-36个数的随机字典,用于加密解密字典,将id的10进制数据转为字典位数的进制

2、这不是还多好多数字嘛。把剩下的拿来当填充字典,这样就实现了填充字典,这样任谁都推算不出来你字典数据

废话不多说,上代码!

加密函数

function createReferralCode($userId)
{
    //用于数据的加解密,一定不要跟填充字典一样!
    //我预设的是37个数的,也就是0-36,具体看你们怎么预设,预设完成后,记得把下面的长度改变一下
    $sourceString = "加解密字典";
    $addString = "填充字典"; 
    $num = $userId;
    $code = '';
    //乘37然后得大于等于37,不然如果数据刚好被37整除的话,可能会
    while($num * 37 >= 37)
    {
        $mod = ($num % 37);
        $code = "{$sourceString[$mod]}{$code}";//邀请码拼接
        $num = $num / 37;
    }
    //判断code的长度
    $
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值