用户邀请码生成方法、验证方法、装置、设备及存储介质与流程

    专利2022-07-08  187


    本发明涉及信息技术领域,尤其涉及用户邀请码生成方法、验证方法、装置、设备及存储介质。



    背景技术:

    目前,许多移动应用程序都有注册邀请机制,用以追溯到邀请人从而分配相应的奖励。邀请机制的核心是邀请码,邀请码的特性包括能唯一标识区分不同个体,长度简短,能够追溯到对应个体。当前邀请码的生成方法有包括随机生成、基于md5取哈希值、进制转换等。

    目前已有常用的技术方案包括基于md5生成、使用校验码与标识码拼接生成的方法。其中基于md5的技术方案的思路是使用md5算法对基准标识码生成哈希数组,然后转换为验证字符串,再对哈希数组进行位置变换,生成目标字符串,最后用验证字符串和目标字符串拼接而成。由于md5本身的特性,导致其具有会产生冲突的可能性,再加上在生成哈希数组的过程中,需要丢弃大部分md5信息,才能减短要生成邀请码的长度,因此其产生邀请码冲突的可能性又增加了很大的概率。另外使用特征值与标识码拼接生成的技术方案,其先基于随机字符串、数据库主键标识和密钥生成转换得到第一冗余校验码和第二冗余校验码,然后使用第一冗余校验码、数据库主键标识符和第二冗余校验码拼接生成邀请码。其最后使用了校验码和数据库主键标识符拼接的方式来生成邀请码,使得生成出来的邀请码较为相似,容易遭到黑客使用猜测和蛮力的方法攻击破解其他的邀请码,安全性不高。



    技术实现要素:

    本申请的目的旨在至少在一定程度上解决上述的技术问题。

    为此,本申请的第一方面提出一种用户邀请码生成方法,该方法基于密码学和数学理论,在生成用户邀请码过程中,对用户唯一标识符进行位扩散、混淆、加密操作,解决了邀请码冲突、易破解的问题。

    本申请的第二方面提出一种用户邀请码验证方法。

    本申请的第三方面提出一种用户邀请码生成装置。

    本申请的第四方面提出一种用户邀请码验证装置。

    本申请的第五方面提出一种提供了一种设备。

    本申请的第六方面提出一种计算机可读存储介质。

    本申请的第七方面提出另一种设备。

    本申请的第八方面提出另一种计算机可读存储介质。

    本申请的具体方案如下:

    第一方面,本申请提出一种用户邀请码生成方法,具体内容如下:

    一种用户邀请码生成方法,所述方法包括:

    请求获取用户邀请码接口,获取当前用户id;

    生成用户邀请码id,在数据库中新生成并储存一条用户邀请码记录,记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;

    将所述用户id和所述用户邀请码id组合生成第一邀请码id;

    将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id;

    将所述第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组;

    将所述第一数组进行位置映射并组合得到用户邀请码。

    进一步地,将所述第一数组进行位置映射并组合得到用户邀请码的具体过程为:定义一个字符空间,每一位字符在空间中唯一,位置随机,根据第一数组中的每一位数值,将其当作索引在字符串中找到对应的字符,最后将获得的每一个字符组合得到用户邀请码。

    进一步地,将所述第一邀请码id转换为一个二维矩阵,并按照预设算法对所述二维矩阵进行列移位和行移位;将移位完成后的二维矩阵转换为整型邀请码id,系统随机生成一个密钥字节数组,用于并对所述整型邀请码id进行异或计算,得到第二邀请码id。

    第二方面,本申请提出一种用户邀请码验证方法,具体内容如下:

    一种用户邀请码验证方法,所述方法包括:

    接收用户输入的用户邀请码;

    对所述用户邀请码进行拆解和位置映射得到第二数组;

    根据预设规则对所述第二数组进行核对校验位,若核对不通过,则所述用户邀请码无效;若核对通过,则对所述第二数组进行进制转换,得到第三邀请码id;

    解析第三邀请码id,根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id;

    将所述第四邀请码id拆分成第一用户id和第一用户邀请码id;从预先存储于数据库的用户邀请码记录,查找与第一用户id和第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用上述第一方面所述的用户邀请码生成方法而生成的;如果存在对应用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。

    进一步地,解析第三邀请码id,根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id的具体方法为:使用第一方面生成用户邀请码时生成的密钥字节数组,对所述第三邀请码id进行异或解密计算,得到第一整型邀请码id;将所述第一整型邀请码id转换为一个二维矩阵,并按照预设算法对所述二维矩阵进行列逆移位和行逆移位,将逆移位完成后的二维矩阵转换为第四邀请码id。

    进一步地,对所述用户邀请码进行拆解和位置映射得到第二数组的具体方法为:拆解所述用户邀请码字符串为多个字符,使用第一方面生成用户邀请码时定义好的字符空间,在定义好的字符空间中搜索每一个字符,并将各个字符在字符空间中的索引按字符串中的字符顺序组合得到第二数组。

    第三方面,本申请提出一种用户邀请码生成装置,具体内容如下:

    一种用户邀请码生成装置,包括:

    用户id获取模块,用于请求获取用户邀请码接口,获取当前用户id;

    用户邀请码id生成模块,用于生成用户邀请码id;

    用户邀请码记录生成模块,用于在数据库中新生成一条用户邀请码记录,其中记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;

    数据储存模块,用于存储在数据库中新生成的用户邀请码记录;

    第一邀请码id生成模块,用于将所述用户id和所述用户邀请码id组合生成第一邀请码id;

    第二邀请码id生成模块,用于将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id;

    第一数组生成模块,用于将所述第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组;

    邀请码生成模块,用于将所述第一数组进行位置映射并组合得到用户邀请码。

    第四方面,本申请提出一种用户邀请码验证装置,具体内容如下:

    一种用户邀请码验证装置,包括:

    邀请码接收模块,用于接收用户输入的用户邀请码;

    拆解与映射模块,用于对所述用户邀请码进行拆解和位置映射得到第二数组;

    核对校验位模块,用于根据预设规则对所述第二数组进行核对校验位;若核对不通过,则所述用户邀请码无效;

    进制转换模块,用于核对通过后对所述第二数组进行进制转换,得到第三邀请码id;

    解析模块,用于根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id;

    拆分模块,用于将所述第四邀请码id拆分成第一用户id和第一用户邀请码id;

    验证模块,用于从预先存储于数据库的用户邀请码记录,查找与第一用户id和第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用上述第三方面所述的用户邀请码生成装置而生成的;如果存在对应用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。

    第五方面,本申请提出一种设备,具体内容如下:

    一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述用户邀请码生成方法的步骤。

    第六方面,本申请提出一种计算机可读存储介质,具体内容如下:

    一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述用户邀请码生成方法的步骤。

    第七方面,本申请提出一种设备,具体内容如下:

    一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面中任一项所述用户邀请码验证方法的步骤。

    第八方面,本申请提出一种计算机可读存储介质,具体内容如下:

    一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面中任一项所述用户邀请码验证方法的步骤。

    本申请的有益效果:

    (1)生成的用户邀请码简短、唯一,相对基于md5的方案,可保证生成出来的用户邀请码不会发生重复。

    (2)基于扩散、混淆的密码学技术,密钥空间大,生成的用户邀请码无规律可循,难以破解,保证安全性。

    (3)生成的用户邀请码包含有效期信息,可适用于对临时邀请码有需求的场景。

    附图说明

    为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本申请实施例的一种用户邀请码生成方法流程示意图;

    图2为本申请实施例的一种用户邀请码验证方法流程示意图;

    图3为本申请实施例的一种用户邀请码生成装置结构示意图;

    图4为本申请实施例的一种用户邀请码验证装置结构示意图。

    具体实施方式

    以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

    应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

    还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

    另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

    在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

    本申请实施例提供的用户邀请码生成方法、用户邀请码验证方法可应用于移动终端、台式计算机、笔记本、掌上电脑及云端服务器等终端设备,具体可通过所述终端设备中的运行应用程序(app或其它系统)实现。

    如图1所示,为本申请第一方面的实施例提供的一种用户邀请码生成方法的流程图,作为示例而非限定,该方法包括:

    客户端请求获取用户邀请码接口,获取当前用户初始标识符;

    由于初始标识符与待生成的用户邀请码是一对一的关系,获取用户初始标识符时需要确保其唯一性,在本申请实施例中,用户邀请码与用户是一一对应的,因此直接以32位整型的用户id,即uid(useridentification,用户身份证明)作为初始标识符,因此只需直接获取当前32位整型的用户id即可,其中,该32位整型的用户id由用户注册账号时系统通过数据库id自增的方式生成,此32位整型的用户id对于每一位用户来说是唯一的。

    特别地,客户端在获取32位整型的用户id时若用户不存在,则提示用户注册账号,系统通过数据库id自增的方式生成32位整型的用户id。

    获取32位整型的用户id后,根据所述32位整型的用户id,生成32位整型的用户邀请码id,并在数据库中新生成并储存一条用户邀请码记录,其中记录信息包含所述32位整型的用户id、32位整型的用户邀请码id以及用户邀请码的有效期。

    将所述32位整型的用户id和32位整型的用户邀请码id组合生成第一邀请码id。特别的,本申请实施例中组合的方法可以是:以32位整型的用户id为高位、32位整型的用户邀请码id为低位的方式合并组成64位整型的第一邀请码id。在此对组合方式不做具体限定。

    具体地,得到64位整型的第一邀请码id后,将所述64位整型的第一邀请码id通过预设算法进行扩散与混淆得到64位整型的第二邀请码id,混淆是指一种使密钥与密文之间的关系尽可能模糊的加密操作,扩散是指一种为了隐藏明文的统计特性而将一个明文符号的影响扩散到多个密文符号的加密操作。其中,在本申请实施例中,通过预设算法进行扩散与混淆的具体方法可以是:将64位整型的第一邀请码id转换为一个8×8的二维矩阵matrix,并按照matrix[i][j]=matrix[i*p1%8][j*p2%8]的规则进行列移位和行移位,其中参数i和j分别代表行与列的索引,参数p1和参数p2是两个不一样的正整数,并且都与整数8互质;移位完成后,重新将二维矩阵matrix转换为64位整型的邀请码id,至此,完成了对64位整型的第一邀请码id的扩散。然后,系统随机生成一个64位的密钥字节数组,使用该密钥字节数组对64位整型的邀请码id进行异或计算,得到混淆后的第二邀请码id(依然是64位)。至此,完成了对64位整型的第一邀请码id的扩散与混淆。

    完成了对64位整型的第一邀请码id的扩散与混淆后,将所述64位整型的第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组。

    具体地,将所述64位整型的第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组的具体方法可以是:生成一个长度为6位的整型数组(设定本申请实施例的用户邀请码的长度为6位),并将64位整型的第二邀请码id赋值到整型数组的第一位,然后进行64进制转换操作,转换只对数组前5位进行操作,最后一位留作校验位,具体为:整型数组的下一位数值等于当前位的数值除以整数64,整型数组当前位则对整数64取余数,余数重新赋值到整型数组当前位,依此类推完成数组前5位的进制转换操作。至于计算校验位的具体方法可以是:对完成进制转换后的整型数组的前5位数值进行累加,所得之和乘上素数p3(p3与整数64互质),再对整数64取余数获得校验值,将校验值存储在整型数组的最后一位。由此经过进制转换和计算校验位后得到完整的6位数的第一数组。

    具体地,在得到第一数组后,将所述第一数组进行位置映射并组合得到用户邀请码。在本申请的实施例中,具体的方法可以是,定义一个长度为64的字符空间,且每一位字符在空间中唯一,位置随机,根据第一数组中的每一位数值,将其当作索引在字符空间的字符串中找到对应的字符,最后将获得的每一个字符组合得到用户邀请码。

    最后,更新用户邀请码并返回给用户界面。将生成后的用户邀请码更新到数据库对应的用户邀请码记录中,同时将用户邀请码返回给客户端。至此,完成本申请实施例的用户邀请码的生成方法。

    本申请生成的用户邀请码简短、唯一,相对基于md5的方案,可保证生成出来的用户邀请码不会发生重复。基于扩散、混淆的密码学技术,密钥空间大,生成的用户邀请码无规律可循,难以破解,保证安全性。此外,本申请生成的用户邀请码包含有效期信息,可适用于对临时邀请码有需求的场景。

    如图2所示,本申请第二方面的实施例提供一种用户邀请码验证方法,与上述第一方面实施例的用户邀请码生成方法相对应。作为示例而非限定,该方法包括:

    接收用户输入的用户邀请码;本申请实施例中设定用户邀请码的长度为6个字符;这些字符可以为数字,字母等,例如1、2、3、a、b、c等。

    对所述用户邀请码进行拆解和位置映射得到第二数组;

    具体地,拆解和位置映射的具体方法可以为:拆解用户邀请码字符串为6个字符,使用本申请第一方面的实施例生成用户邀请码时定义好的长度为64的字符空间,在定义好的长度为64的字符空间中搜索每一个字符,并将各个字符在字符空间中的索引按字符串中的字符顺序组成一个长度为6的第二数组。

    具体地,在得到第二数组后,根据预设规则对所述第二数组进行核对校验位,若核对不通过,则所述用户邀请码无效;若核对通过,则对所述第二数组进行进制转换,得到第三邀请码id;在本申请实施例中,核对校验位的具体方法可以为:将第二数组的前5位数值进行累加,所得之和乘上素数p3(p3与整数64互质),再对整数64取余数得到计算校验值,将计算校验值与第二数组的最后一位进行比对,如果两者不相等,则验证失败,该用户邀请码无效;否则校验通过,进入下一步流程。在本申请实施例中,进制转换的具体方法可以为:对第二数组前5位的整数进行转换,从第5位开始往前计算,每一位的数值加上前一位的数值与整数64的乘积,结果再赋值到上一位,直到上一位为第二数组的第一位时计算结束,得到64位整型的第三邀请码id。

    在得到第三邀请码id后,解析第三邀请码id:根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到64位整型的第四邀请码id。

    具体地,解析第三邀请码id,根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id的具体方法为:使用本申请第一方面的实施例生成用户邀请码时生成的64位密钥字节数组,对所述第三邀请码id进行异或解密计算,得到第一整型邀请码id;在得到第一整型邀请码id后,将所述第一整型邀请码id转换为一个二维矩阵matrix,并且按照matrix[i][j]=matrix[i*p1%8][j*p2%8]的规则进行列逆移位和行逆移位,其中参数i和j分别代表行与列的索引,参数p1和参数p2与整数8互质;最后将逆移位完成后的二维矩阵转换为64位整型的第四邀请码id。

    将所述第四邀请码id拆分成32位整型的第一用户id和32位整型的第一用户邀请码id;具体的拆分方法可以为:32位整型的第一用户id为64位整型的第四邀请码id的高位,32位整型的第一用户邀请码id为64位整型的第四邀请码id的低位。

    对64位整型的第四邀请码id拆分后,从预先存储于系统数据库的用户邀请码记录,查找与32位整型的第一用户id和32位整型的第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用本申请第一方面的实施例所述的用户邀请码生成方法而生成的;如果存在对应的用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。至此,完成本申请实施例的用户邀请码验证方法。

    如图3所示,本申请第三方面的实施例提供一种用户邀请码生成装置,作为示例而非限定,与上述本申请第一方面的实施例提供的用户邀请码生成方法相对应,由于本申请实施例提供的用户邀请码生成装置与上述本申请第一方面的实施例提供的用户邀请码生成方法相对应,因此在前述用户邀请码生成方法的实施方式也适用于本实施例提供的用户邀请码生成装置,在本实施例中不再详细描述。图3为根据本申请第三方面的实施例的用户邀请码生成装置的结构示意图。包括:

    用户id获取模块101,用于请求获取用户邀请码接口,获取当前用户id;

    用户邀请码id生成模块102,用于生成用户邀请码id;

    用户邀请码记录生成模块103,用于在数据库中新生成一条用户邀请码记录,其中记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;

    数据储存模块104,用于存储在数据库中新生成的用户邀请码记录;

    第一邀请码id生成模块105,用于将所述用户id和所述用户邀请码id组合生成第一邀请码id;

    第二邀请码id生成模块106,用于将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id;

    第一数组生成模块107,用于将所述第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组;

    邀请码生成模块108,用于将所述第一数组进行位置映射并组合得到用户邀请码。

    如图4所示,本申请第四方面的实施例提供一种用户邀请码验证装置,作为示例而非限定,与上述本申请第二方面的实施例提供的用户邀请码验证方法相对应,由于本申请实施例提供的用户邀请码验证装置与上述本申请第二方面的实施例提供的用户邀请码验证方法相对应,因此在前述用户邀请码验证方法的实施方式也适用于本实施例提供的用户邀请码验证装置,在本实施例中不再详细描述。图4为根据本申请第四方面的实施例的用户邀请码验证装置的结构示意图。包括:

    邀请码接收模块201,用于接收用户输入的用户邀请码;

    拆解与映射模块202,用于对所述用户邀请码进行拆解和位置映射得到第二数组;

    核对校验位模块203,用于根据预设规则对所述第二数组进行核对校验位;若核对不通过,则所述用户邀请码无效;

    进制转换模块204,用于核对通过后对所述第二数组进行进制转换,得到第三邀请码id;

    解析模块205,用于根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id;

    拆分模块206,用于将所述第四邀请码id拆分成第一用户id和第一用户邀请码id;

    验证模块207,用于从预先存储于数据库的用户邀请码记录,查找与第一用户id和第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用上述第三方面的实施例所述的用户邀请码生成装置而生成的;如果存在对应用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。

    本申请第五方面的实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的任意实施例所述用户邀请码生成方法的步骤。

    本申请第六方面的实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的任意实施例所述的用户邀请码生成方法的步骤。

    本申请第七方面的实施例提出一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面的任意实施例所述的用户邀请码验证方法的步骤。

    本申请第八方面的实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面的任意实施例所述的用户邀请码验证方法的步骤。

    本申请所述的终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备还可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

    所述处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

    所述存储器可以是所述终端设备的内部存储单元,例如终端设备的硬盘或内存。所述存储器也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等等。进一步地,所述存储器还可以既包括所述终端设备的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

    所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

    所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

    本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

    以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。


    技术特征:

    1.一种用户邀请码生成方法,其特征在于,所述方法包括:

    请求获取用户邀请码接口,获取当前用户id;

    生成用户邀请码id,在数据库中新生成并储存一条用户邀请码记录,记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;

    将所述用户id和所述用户邀请码id组合生成第一邀请码id;

    将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id;

    将所述第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组;

    将所述第一数组进行位置映射并组合得到用户邀请码。

    2.根据权利要求1所述的一种用户邀请码生成方法,其特征在于,将所述第一数组进行位置映射并组合得到用户邀请码的具体过程为:定义一个字符空间,每一位字符在空间中唯一,位置随机,根据第一数组中的每一位数值,将其当作索引在字符串中找到对应的字符,最后将获得的每一个字符组合得到用户邀请码。

    3.根据权利要求1所述的一种用户邀请码生成方法,其特征在于,所述扩散与混淆的具体方法为:将所述第一邀请码id转换为一个二维矩阵,并按照预设算法对所述二维矩阵进行列移位和行移位;将移位完成后的二维矩阵转换为整型邀请码id,系统随机生成一个密钥字节数组,用于并对所述整型邀请码id进行异或计算,得到第二邀请码id。

    4.一种用户邀请码验证方法,其特征在于,所述方法包括:

    接收用户输入的用户邀请码;

    对所述用户邀请码进行拆解和位置映射得到第二数组;

    根据预设规则对所述第二数组进行核对校验位,若核对不通过,则所述用户邀请码无效;若核对通过,则对所述第二数组进行进制转换,得到第三邀请码id;

    解析第三邀请码id,根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id;

    将所述第四邀请码id拆分成第一用户id和第一用户邀请码id;从预先存储于数据库的用户邀请码记录,查找与第一用户id和第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用如权利要求1所述的用户邀请码生成方法而生成的;如果存在对应用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。

    5.根据权利要求4所述的一种用户邀请码验证方法,其特征在于,解析第三邀请码id,根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id的具体方法为:使用生成用户邀请码时生成的密钥字节数组,对所述第三邀请码id进行异或解密计算,得到第一整型邀请码id;将所述第一整型邀请码id转换为一个二维矩阵,并按照预设算法对所述二维矩阵进行列逆移位和行逆移位,将逆移位完成后的二维矩阵转换为第四邀请码id。

    6.根据权利要求4所述的一种用户邀请码验证方法,其特征在于,对所述用户邀请码进行拆解和位置映射得到第二数组的具体方法为:拆解所述用户邀请码字符串为多个字符,使用生成用户邀请码时定义好的字符空间,在定义好的字符空间中搜索每一个字符,并将各个字符在字符空间中的索引按字符串中的字符顺序组合得到第二数组。

    7.一种用户邀请码生成装置,其特征在于,包括:

    用户id获取模块,用于请求获取用户邀请码接口,获取当前用户id;

    用户邀请码id生成模块,用于生成用户邀请码id;

    用户邀请码记录生成模块,用于在数据库中新生成一条用户邀请码记录,其中记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;

    数据储存模块,用于存储在数据库中新生成的用户邀请码记录;

    第一邀请码id生成模块,用于将所述用户id和所述用户邀请码id组合生成第一邀请码id;

    第二邀请码id生成模块,用于将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id;

    第一数组生成模块,用于将所述第二邀请码id通过预设规则进行进制转换和计算校验位得到第一数组;

    邀请码生成模块,用于将所述第一数组进行位置映射并组合得到用户邀请码。

    8.一种用户邀请码验证装置,其特征在于,包括:

    邀请码接收模块,用于接收用户输入的用户邀请码;

    拆解与映射模块,用于对所述用户邀请码进行拆解和位置映射得到第二数组;

    核对校验位模块,用于根据预设规则对所述第二数组进行核对校验位;若核对不通过,则所述用户邀请码无效;

    进制转换模块,用于核对通过后对所述第二数组进行进制转换,得到第三邀请码id;

    解析模块,用于根据预设算法对第三邀请码id进行混淆逆操作与扩散逆操作,得到第四邀请码id;

    拆分模块,用于将所述第四邀请码id拆分成第一用户id和第一用户邀请码id;

    验证模块,用于从预先存储于数据库的用户邀请码记录,查找与第一用户id和第一用户邀请码id对应的用户邀请码记录;其中,所述用户邀请码记录是通过使用如权利要求7所述的用户邀请码生成装置而生成的;如果存在对应用户邀请码记录且当前仍处于有效期,则用户邀请码有效性验证通过,否则用户邀请码无效,验证不通过。

    9.一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述用户邀请码生成方法的步骤。

    10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述用户邀请码生成方法的步骤。

    11.一种设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求4至7任一项所述用户邀请码验证方法的步骤。

    12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求4至7任一项所述用户邀请码验证方法的步骤。

    技术总结
    本发明涉及信息技术领域,尤其涉及用户邀请码生成方法、验证方法、装置、设备及存储介质。用户邀请码生成方法包括:请求获取用户邀请码接口,获取当前用户id;生成用户邀请码id,在数据库中新生成并储存一条用户邀请码记录,记录信息包含所述用户id、用户邀请码id以及用户邀请码的有效期;将所述用户id和所述用户邀请码id组合生成第一邀请码id;将所述第一邀请码id通过预设算法进行扩散与混淆得到第二邀请码id。本申请生成的用户邀请码简短、唯一,不会发生重复。本申请基于扩散、混淆的密码学技术,密钥空间大,生成的用户邀请码无规律可循,难破解,安全性高;本申请的用户邀请码包含有效期信息,可适用于对临时邀请码有需求的场景。

    技术研发人员:陈炽伟
    受保护的技术使用者:关爱未来(广东)信息科技有限公司
    技术研发日:2020.11.03
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21463.html

    最新回复(0)