返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >生成6位邀请码,无规律、唯一、不重复
  • 769
分享到

生成6位邀请码,无规律、唯一、不重复

散列表哈希算法预编码算法算法php 2023-09-02 18:09:43 769人浏览 安东尼
摘要

常见不查数据库的邀请码方案,大部分是利用进制转换或自定义补位加密的方式实现,无法避免生成的邀请码依然比较规律。 函数思路 利用数字翻转后也是唯一的特点,就可以实现数字较大幅度无规律变化之后再做进制转换,只要翻转过程始终处在6位进制的区间就

常见不查数据库的邀请码方案,大部分是利用进制转换或自定义补位加密的方式实现,无法避免生成的邀请码依然比较规律。

函数思路

  • 利用数字翻转后也是唯一的特点,就可以实现数字较大幅度无规律变化之后再做进制转换,只要翻转过程始终处在6位进制的区间就可以实现唯一。
  • 转2进制翻转是为了扩大范围容量,其实用10进制翻转后有90亿的容量也是足够用的。
function inviteCode6($id){    //10进制转2进制翻转,补位避免数字翻转塌陷。    $id = base_convert('1' . substr(strrev((base_convert($id + 3221225472, 10, 2))), 0, -1), 2, 10);    //字典字母顺序可打乱    $dict = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';    $base = strlen($dict);    $code = '';    //自定义进制转换    do {        $code = $dict[bcmod($id, $base)] . $code;        $id = bcdiv($id, $base);    } while ($id > 0);    return $code;}

进一步优化思路

  • 函数可进一步封装自定义字典,自定义输出位数【有时间我会封装一下也发出来】。
  • 同样的原理通过打乱字典、更换翻转进制、调整起点基数,即可改造成简单对称加密函数。
  • 如果不需要解密获取传入的id,可随机固定前几位再连接id的方式传入实现完全不可逆且唯一。

来源地址:https://blog.csdn.net/u014782135/article/details/126583949

--结束END--

本文标题: 生成6位邀请码,无规律、唯一、不重复

本文链接: https://lsjlt.com/news/391221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 生成6位邀请码,无规律、唯一、不重复
    常见不查数据库的邀请码方案,大部分是利用进制转换或自定义补位加密的方式实现,无法避免生成的邀请码依然比较规律。 函数思路 利用数字翻转后也是唯一的特点,就可以实现数字较大幅度无规律变化之后再做进制转换,只要翻转过程始终处在6位进制的区间就...
    99+
    2023-09-02
    散列表 哈希算法 预编码算法 算法 php
  • Php中生成6位无规律、唯一、不重复的邀请码
    //输入当前的用户编号自增长的id function getInviteCode($userId){ $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123...
    99+
    2023-09-17
    php javascript 开发语言
  • php怎么生成6位不重复的字符串
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么生成6位不重复的字符串PHP生成6位的不重复的字符串(类似 UUID)我们要考虑到:不重复。安全性。【 不建议使用啥敏感的数据作为订单生成规则(例如:用户UID...
    99+
    2018-11-08
    php 不重复
  • php如何生成6位不重复的字符串
    本篇内容介绍了“php如何生成6位不重复的字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php生成6位不重复的字符串的方法:1、通过“...
    99+
    2023-06-25
  • php如何生成字符串唯一不重复
    小编给大家分享一下php如何生成字符串唯一不重复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php生成字符串唯一不重复的方法:1、当前时间戳进行md5加密,截取...
    99+
    2023-06-20
  • 高并发php uniqid不重复唯一标识符生成方案
    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重...
    99+
    2024-04-02
  • 怎么用php生成一个不重复的随机4位数字
    在PHP开发中,我们经常需要生成随机的数字,来实现一些特定的功能或者验证码的生成等。但是,如果这些随机生成的数字重复,就会出现一些问题。那么如何在PHP中生成一个不重复的随机4位数字呢?下面就介绍一下实现方式。方法一:使用数组我们可以通过数...
    99+
    2023-05-14
    随机数字 php
  • 如何用php生成一个不重复的随机4位数字
    这篇文章主要介绍“如何用php生成一个不重复的随机4位数字”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用php生成一个不重复的随机4位数字”文章能帮助大家解决问题。方法一:使用数组我们可以通过...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作