如何生成邀请码?

限制条件如下:

1 邀请码比较短,

2 速度要快

3 用户不能很容易的发现规律

方案1:用自增

条件一和二都可以满足,但条件三就不能满足。

方案2:用随机数去生成邀请码

条件1和3可以满足,但是因为要检测碰撞,所以条件2不能满足。

方案3:利用自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数。

比如存在int里,如果是4个字节,然后直接将它的十六进制格式的字符当作邀请码,可以生成8位的邀请码。

如果是8个字节,可以直接生成16位的邀请码,如果这个太长了,可以将其小端4个字节的内容转换成十六进制格式,这样也可以生成8位的邀请码,而且在一年多的时间里是不可能重复的。

原文:http://blog.csdn.net/hongchangfirst/article/details/27311055

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst

时间: 2024-10-03 23:07:20

如何生成邀请码?的相关文章

js生成邀请码

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type"

生成邀请码

1.微博短链接算法,56E能够保证重复率很低,生成6位,如果角色命中率高可以用生成8位,而且每个md5的结果可以生成4个可选短链接,增加了不重复率 md5的源可以是pid+time 但这个要处理重复情况,redis那边要事务管理 2.对pid进行处理,定9-64种位置打乱规则,每次随机一种,然后对pid(补全固定10个字符)进行打乱,打乱后把打乱类型放到最前面用于标识,然后对这串进行base64 或者base62 编码,可以把11字符长度缩减到6-8.

邀请码工具类

package org.colin.utils; import java.util.Arrays; /** * 邀请码工具类 * @author Colin */ public class InvitationCodeUtils { private static final String[] M1 = { "A", "W", "Z", "J", "M", "N", "7&quo

全局唯一随机邀请码实现方式

背景 日常的网站开发中,会遇到网站的促销活动,就有涉及到邀请好礼的功能 成功邀请好友,则获取相应奖励,这时候,就有邀请码的需求 邀请码要求每个用户唯一 方法一. 可根据用户的uid生成邀请码 方法二. 邀请码可根据某个初始化id生成,用户主动请求,生成code,绑定uid 方法二,这种方式,需额外记录uid和code关系 方法一,根据uid生成,也可根据code反推出uid,不用额外查询,比较方便 实现 记录方法一的实现 由长数字转换为特定长度的code,首先需确定code的字符范围 可转换为

根据用户id生成一个唯一邀请码

需求描述:根据用户id生成与之对应的唯一邀请码,范围为'0-9A-Z'. 这个需求的重点在于加粗的部分,也就是要能够根据邀请码反推出用户ID,这样邀请码就不用入库了,在用户量很大的情况下,性能可以得到不小的提升. 错误思路 随机生成一个字符串,再将用户id拼接到字符串后面,但是这样id就太明显了,容易暴露,而且如果id很长的话,会导致邀请码很长,不利于用户使用. 所以可以将用户id插入到生成的字符串中,隔一个字符插入一个id的数字,这样id混合在字符串中,不容易暴露,但是长度问题并没有得到优化,

Java生成随机不重复推广码邀请码

欢迎进入我的博客:blog.scarlettbai.com查看更多文章 最近接到一个需求,要批量生成推广码,首先我们知道推广码的特效有如下两点: 1:不可重复 2:不可以被推测出 关于这两点,我们的思路大体分为如下几类: 1:每次生成一个随机码后查数据库是否有相同的,有则重新生成(每次都要访问数据库,导致效率极低,不推荐) 2:依据数据库的主键作为唯一键,进行打乱或插入操作,如主键为8000001,取出后生成3位(据需求增减)随机数或字母,插入主键值中,构成如8000E0V0S1D这种串,可保证

Java生成随机不反复推广码邀请码

欢迎进入我的博客:blog.scarlettbai.com查看很多其它文章 近期接到一个需求.要批量生成推广码,首先我们知道推广码的特效有例如以下两点: 1:不可反复 2:不能够被猜測出 关于这两点,我们的思路大体分为例如以下几类: 1:每次生成一个随机码后查数据库是否有同样的,有则又一次生成(每次都要訪问数据库.导致效率极低,不推荐) 2:根据数据库的主键作为唯一键,进行打乱或插入操作,如主键为8000001,取出后生成3位(据需求增减)随机数或字母.插入主键值中.构成如8000E0V0S1D

moon邀请码获取及卡密生成

最近大家都在问moon是什么?moon邀请码多少?moon卡密是什么?moon卡密分享怎样获取?moon注册邀请码:121111建议官方取卡:http://t.cn/EApJIVB 先前我们讲了中国的月神.我一直说,神只是一些其他时间线的人,所有神,也都是人们对自然崇拜和先祖崇拜结合的衍生文化.那么接下来z就和大家聊聊那些异域的moon,中问音译月神, 阿尔忒弥斯所扮演的角色是复杂的,既是月神又是狩猎女神的阿尔忒弥斯脸上稚气未抹,经常穿戴束腰的短裙和猎靴,拿着弓箭, 身边伴随着鹿或者猎犬. 经常

(Lure邀请码继续开放)Lure卡密生成获取!!

Lure邀请码:112118 ure是引诱,魅力,吸引力的意思 Maybe you just said that you lure me :或许你刚才吸引到我 字面意思正是此APP愿景 今天让我们来欣赏Lure的时尚画报直播.虽然是第一次,但是一看就能感觉到Lure用柔和的色调和卡密的气氛表现出来的女人味气息. 总算迎来了温暖的夏日,Lure直播盒子注册充值续费这时候大部分鱼种都已经开端高度活泼起来了,这个时节也是鱼儿开口觅食的高峰期,除了那种特别极点的天气情况,玩路亚一般都会有不错的收成.最近