CN110489466B - 邀请码的生成方法、装置、终端设备及存储介质 - Google Patents
邀请码的生成方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN110489466B CN110489466B CN201910593765.3A CN201910593765A CN110489466B CN 110489466 B CN110489466 B CN 110489466B CN 201910593765 A CN201910593765 A CN 201910593765A CN 110489466 B CN110489466 B CN 110489466B
- Authority
- CN
- China
- Prior art keywords
- character string
- invitation code
- reference character
- value
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例适用于信息技术领域,提供了一种邀请码的生成方法、装置、终端设备及存储介质,所述方法包括:确定生成邀请码的基准字符串;对所述基准字符串进行哈希计算,生成MD5值;依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;将所述验证字符串和目标字符串组合为邀请码。本实施例的生成过程中只需要执行一次哈希计算,生成邀请码的效率高;生成的邀请码中的验证字符串无规律可循,无法通过修改某个字符去破解邀请码,提高了邀请码的安全性。
Description
技术领域
本发明属于信息技术领域,特别是涉及一种邀请码的生成方法、一种邀请码的生成装置、一种终端设备及一种计算机可读存储介质。
背景技术
邀请码是一串用户可以自由分享的字符串,用户可以通过该邀请码获得某种权益。例如,某银行信用卡用户通过向好友发送邀请码邀请该好友办理该银行的信用卡,使得用户及其好友都能获得该银行赠送的积分权益或物品奖励。
通常,邀请码都是通过相应的算法规则生成的具有一定长度的字符串。例如,邀请码可以是一个由数字和字母组成的12位的字符串。为了保证邀请码的安全性,现有技术中在生成邀请码的同时,还需要按照特定的算法单独生成一个由数字和字母组成的字符串作为验证码,并将该验证码存储至数据库中,以便进行后续的验证。在对邀请码进行验证时,需要根据唯一的识别标识从数据库中提取出验证码,然后基于对应的验证位对验证码进行逆运算,并将运算结果与邀请码进行比较,从而完成对邀请码的验证。
由此可见,现有技术中生成邀请码和验证邀请码的操作均十分复杂,而且还要占用一定的数据库资源。
发明内容
有鉴于此,本发明实施例提供了一种邀请码的生成方法、装置、终端设备及存储介质,以解决现有技术中生成邀请码的过程过于复杂的问题。
本发明实施例的第一方面提供了一种邀请码的生成方法,包括:
确定生成邀请码的基准字符串;
对所述基准字符串进行哈希计算,生成MD5值;
依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
将所述验证字符串和目标字符串组合为邀请码。
本发明实施例的第二方面提供了一种邀请码的生成装置,包括:
基准字符串确定模块,用于确定生成邀请码的基准字符串;
哈希计算模块,用于对所述基准字符串进行哈希计算,生成MD5值;
验证字符串生成模块,用于依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
目标字符串生成模块,用于采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
邀请码组合模块,用于将所述验证字符串和目标字符串组合为邀请码。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述邀请码的生成方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述邀请码的生成方法的步骤。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例,通过确定生成邀请码的基准字符串,可以对基准字符串进行哈希计算,生成MD5值,然后依据上述基准字符串和MD5值,生成哈希数组,并按预设规则将该哈希数组转换为验证字符串;同时,在采用该哈希数组对上述基准字符串进行位置变换,生成目标字符串后,进而可以将验证字符串和目标字符串组合为邀请码。本实施例的生成过程中只需要执行一次哈希计算,生成邀请码的效率高;生成的邀请码中的验证字符串无规律可循,无法通过修改某个字符去破解邀请码,提高了邀请码的安全性;同时,本实施例可以直接通过邀请码本身的验证字符串进行验证,无需通过数据库去进行邀请码的验证,可以防止数据后泄露后的暴力破解,进一步保证了邀请码的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的一种邀请码的生成方法的步骤流程示意图;
图2是本发明一个实施例的一种邀请码的生成装置的示意图;
图3是本发明一个实施例的一种终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本发明。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
下面通过具体实施例来说明本发明的技术方案。
参照图1,示出了本发明一个实施例的一种邀请码的生成方法的步骤流程示意图,具体可以包括如下步骤:
S101、确定生成邀请码的基准字符串;
在本发明实施例中,在生成邀请码前,可以首先确定一基准字符串,该基准字符串可以是用于生成邀请码的基础。
在具体实现中,基准字符串可以是随机生成的,也可以是基于某个随机生成的数字,按照特定的算法转换得到的。通常,基准字符串可以是包含字母和数字的一串字符。
以基准字符串是基于某个随机生成的数字转换得到的为例。在确定基准字符串时,可以首先确定生成邀请码的基准数字,然后按照预设算法将上述基准数字转换为基准字符串。例如,基准数字可以是30132018。
需要说明的是,对于不同的邀请码,基准数字应当是不同的。
在确定基准数字后,可以按照特定算法将上述基准数字转换为一个包含字母和数字且长度为8位的基准字符串。上述特定算法可以根据实际需要确定,并不唯一,本实施例对此不作限定。
例如,对于上述基准数字30132018,经转换后得到的基准字符串可以是CVRER8NB。
S102、对所述基准字符串进行哈希计算,生成MD5值;
哈希(hash)是指把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
在本发明实施例中,可以对基准字符串进行MD5哈希计算,生成相应的MD5值。
以基准字符串CVRER8NB为例,经MD5哈希计算得到的MD5值为742B00711B0B11E7。
S103、依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
在本发明实施例中,在生成哈希数组前,需要首先提取上述基准字符串中特定下标对应的基准字符。特定下标可以是指基准字符串中第0位、第2位、第4位及第6位下标对应的基准字符。
以基准字符串CVRER8NB为例,第0位下标对应的基准字符为C、第2位下标对应的基准字符为R、第4位下标对应的基准字符为R、第6位下标对应的基准字符为N。因此,上述基准字符串中特定下标对应的基准字符即是[C,R,R,N]。
当然,根据实际需要,特定下标也可以选定第1位、第3位、第5位及第7位下标,或者其他任意下标,本实施例对此不作限定。
在确定基准字符串中特定下标对应的基准字符后,可以通过查找预置的第一映射表,确定在该第一映射表中上述各个基准字符对应的下标值。
在具体实现中,可以预设一映射表即第一映射表,并按照一定的规则在该第一映射表中存储各个数字或字母对应的下标值。
例如,在该第一映射表中,字母C对应的下标值可以为0,字母R对应的下标值可以为12,字母N对应的下标值可以为3,因此,上述基准字符[C,R,R,N]对应的下标值可以表示为[0,12,12,3]。
需要说明的是,第一映射表中各个数字及字母对应的下标值可以根据实际需要确定,并不唯一,本实施例对此不作限定。
然后,可以根据上述下标值,从步骤S102中生成的MD5值中提取出上述下标值对应的目标字节,并依据该目标字节,生成哈希数组。
例如,对于上述下标值[0,12,12,3]和MD5值742B00711B0B11E7,可以首先提取下标值为0对应的目标字节即7,然后提取下标值为12对应的目标字节为1,最后提取下标值为3对应的目标字节为B。
在依据目标字节生成哈希数组时,可以首先查找预置的第二映射表,确定在预置的第二映射表中上述目标字节对应的绝对值数值。
例如,上述目标字节7、1、B对应的绝对值数值可以是2、3、2。
需要说明的是,第二映射表中各个目标字节对应的绝对值数值可以根据实际需要确定,并不唯一,各个目标字节可以是数字也可以是字母,不同的目标字节对应的绝对值数值可以是相同的,也可以是不同的,本实施例对此不作限定。
然后,可以分别将上述绝对值数值与预设的盐值相乘后取模,得到哈希数组。
盐值可以是生成邀请码的过程中的一个标识号,通过在生成邀请码的过程中使用该盐值,可以实现对生成过程的加密处理。例如,预设的盐值可以是2018。
需要说明的是,对于不同的邀请码,基准数字或基准字符串应当是不同的,但盐值通常是固定的。
在本发明实施例中,在生成哈希数组时,取模所使用的模数可以是16,当然,模数也可以是其他数值,本实施例对此不作限定。
以模数为16为例。对于上述目标字节7、1、1、B,其对应的绝对值数值分别是2、3、3、2,在乘以盐值2018后,结果为4036、6054、6054、4036.对上述结果分别取模,可以得到哈希数组即为[4,6,6,4](4036/16=252+4,6054/16=378+6)。
在得到哈希数组后,可以按照预设规则将上述哈希数组转换为验证字符串。
在具体实现中,上述预设规则可以是按照字母表顺序确定的各个哈希数组中各个数字对应的字母。例如,可以从字母B开始排列,即数字0对应的字母为B,则数字1、2、3、4、5、6对应的字母可以分别为C、D、E、F、G、H。
因此,哈希数组[4,6,6,4]对应的验证字符串可以是FHHF。
S104、采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
在本发明实施例中,可以采用哈希数组对确定的基准字符串进行位置变换,生成目标字符串。目标字符串可以作为最终生成的邀请码中的一部分。
在本发明实施例中,可以采用上述哈希数组,确定基准字符串的位置变换信息。
作为本发明的一种示例,可以将上述哈希数组中的每个值与预设的盐值分别相乘后取模,得到该基准字符串的位置变换信息。
例如,对于哈希数组[4,6,6,4]中数字4,在乘以盐值2018后的结果为8072,若按7取模,其结果为1;按照类似方式,数字6对应的结果为5.
因此,哈希数组[4,6,6,4]对应的位置变换信息可以表示为[1,5,5,1]。
需要说明的是,在采用哈希数组确定基准字符串的位置变换信息时,取模所使用的数值大小可以与生成哈希数组时所使用的模数的数值大小不同。
然后,可以按照上述位置变换信息,对基准字符串进行位置变换,生成目标字符串。即,可以按照上述位置变换信息[1,5,5,1]对基准字符串CVRER8NB进行位置变换。
在具体实现中,对于位置变换信息中的第一个数字1,可以首先提取出在基准字符串中相应位置的字符为V,作为目标字符串中的第0位字符;然后,按照相同方式对基准字符串中剩余的其他字符CRER8NB进行处理,依次提取出字符N、B和R作为目标字符串中的第1-3位的字符,在提取出上述字符后,基准字符串中剩余的字符为CER8,从而可以将剩余字符写入目标字符串的末尾,得到目标字符串即为VNBRCER8。
S105、将所述验证字符串和目标字符串组合为邀请码。
在本发明实施例中,可以将验证字符串和变化位置后得到的目标字符串直接组合为邀请码,即FHHFVNBRCER8。
当然,在将验证字符串和目标字符串组合为邀请码时,也可以将目标字符串写在验证字符串之前,使得最终生成的邀请码为VNBRCER8FHHF,本实施例对此不作限定。
通常,邀请码在被发出并被用户使用时,需要对该邀请码进行验证。因此,在本发明实施例中,当接收到邀请码时,可以通过提取该邀请码中的验证字符串并基于该验证字符串对该邀请码进行验证。
以验证字符串为邀请码的前4位字符为例,对于接收到的邀请码FHHFVNBRCER8,可以提取出其前4位验证字符串,即FHHF;然后基于该验证字符串与盐值2018做逆运算,从而实现对邀请码的验证。
在具体实现中,在进行逆运算时,可以首先按照生成哈希数组时的特定规则进行反向处理,确定验证码FHHF对应的哈希数组,然后将哈希数组中的各个数值乘以盐值再取模得到位置变换信息,从而可以还原出待验证的基准字符串,通过比较待验证的基准字符串与数据库中的基准字符串是否相同,即可完成对该邀请码的验证。
在本发明实施例中,通过确定生成邀请码的基准字符串,可以对基准字符串进行哈希计算,生成MD5值,然后依据上述基准字符串和MD5值,生成哈希数组,并按预设规则将该哈希数组转换为验证字符串;同时,在采用该哈希数组对上述基准字符串进行位置变换,生成目标字符串后,进而可以将验证字符串和目标字符串组合为邀请码。本实施例的生成过程中只需要执行一次哈希计算,生成邀请码的效率高;生成的邀请码中的验证字符串无规律可循,无法通过修改某个字符去破解邀请码,提高了邀请码的安全性;同时,本实施例可以直接通过邀请码本身的验证字符串进行验证,无需通过数据库去进行邀请码的验证,可以防止数据后泄露后的暴力破解,进一步保证了邀请码的安全性。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图2,示出了本发明一个实施例的一种邀请码的生成装置的示意图,具体可以包括如下模块:
基准字符串确定模块201,用于确定生成邀请码的基准字符串;
哈希计算模块202,用于对所述基准字符串进行哈希计算,生成MD5值;
验证字符串生成模块203,用于依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
目标字符串生成模块204,用于采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
邀请码组合模块205,用于将所述验证字符串和目标字符串组合为邀请码。
在本发明实施例中,所述基准字符串确定模块201具体可以包括如下子模块:
基准数字确定子模块,用于确定生成邀请码的基准数字;
基准数字转换子模块,用于按照预设算法将所述基准数字转换为基准字符串。
在本发明实施例中,所述验证字符串生成模块203具体可以包括如下子模块:
基准字符提取子模块,用于提取所述基准字符串中特定下标对应的基准字符;
下标值确定子模块,用于确定在预置的第一映射表中所述基准字符对应的下标值;
目标字节提取子模块,用于从所述MD5值中提取出所述下标值对应的目标字节;
哈希数组生成子模块,用于依据所述目标字节,生成哈希数组。
在本发明实施例中,所述哈希数组生成子模块具体可以包括如下单元:
绝对值数值确定单元,用于确定在预置的第二映射表中所述目标字节对应的绝对值数值;
哈希数组计算单元,用于将所述绝对值数值与预设的盐值相乘后取模,得到哈希数组。
在本发明实施例中,所述目标字符串生成模块204具体可以包括如下子模块:
位置变换信息确定子模块,用于采用所述哈希数组,确定所述基准字符串的位置变换信息;
目标字符串生成子模块,用于按照所述位置变换信息,对所述基准字符串进行位置变换,生成目标字符串。
在本发明实施例中,所述位置变换信息确定子模块具体可以包括如下单元:
位置变换信息计算单元,用于将所述哈希数组中的每个值与预设的盐值分别相乘后取模,得到所述基准字符串的位置变换信息。
在本发明实施例中,所述装置还可以包括如下模块:
邀请码验证模块,用于在接收到所述邀请码时,提取所述邀请码中的验证字符串并基于所述验证字符串对所述邀请码进行验证。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图3,示出了本发明一个实施例的一种终端设备的示意图。如图3所示,本实施例的终端设备300包括:处理器310、存储器320以及存储在所述存储器320中并可在所述处理器310上运行的计算机程序321。所述处理器310执行所述计算机程序321时实现上述邀请码的生成方法各个实施例中的步骤,例如图1所示的步骤S101至S105。或者,所述处理器310执行所述计算机程序321时实现上述各装置实施例中各模块/单元的功能,例如图2所示模块201至205的功能。
示例性的,所述计算机程序321可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器320中,并由所述处理器310执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序321在所述终端设备300中的执行过程。例如,所述计算机程序321可以被分割成基准字符串确定模块、哈希计算模块、验证字符串生成模块、目标字符串生成模块和邀请码组合模块,各模块具体功能如下:
基准字符串确定模块,用于确定生成邀请码的基准字符串;
哈希计算模块,用于对所述基准字符串进行哈希计算,生成MD5值;
验证字符串生成模块,用于依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
目标字符串生成模块,用于采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
邀请码组合模块,用于将所述验证字符串和目标字符串组合为邀请码。
所述终端设备300可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备300可包括,但不仅限于,处理器310、存储器320。本领域技术人员可以理解,图3仅仅是终端设备300的一种示例,并不构成对终端设备300的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备300还可以包括输入输出设备、网络接入设备、总线等。
所述处理器310可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器320可以是所述终端设备300的内部存储单元,例如终端设备300的硬盘或内存。所述存储器320也可以是所述终端设备300的外部存储设备,例如所述终端设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器320还可以既包括所述终端设备300的内部存储单元也包括外部存储设备。所述存储器320用于存储所述计算机程序321以及所述终端设备300所需的其他程序和数据。所述存储器320还可以用于暂时地存储已经输出或者将要输出的数据。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置/终端设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其他的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件完成,所述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种邀请码的生成方法,其特征在于,包括:
确定生成邀请码的基准字符串;
对所述基准字符串进行哈希计算,生成MD5值;
依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
将所述验证字符串和目标字符串组合为邀请码;
其中,所述依据所述基准字符串和所述MD5值,生成哈希数组的步骤包括:
提取所述基准字符串中特定下标对应的基准字符;
确定在预置的第一映射表中所述基准字符对应的下标值;
从所述MD5值中提取出所述下标值对应的目标字节;
确定在预置的第二映射表中所述目标字节对应的绝对值数值;
将所述绝对值数值与预设的盐值相乘后取模,得到哈希数组。
2.根据权利要求1所述的方法,其特征在于,所述确定生成邀请码的基准字符串的步骤包括:
确定生成邀请码的基准数字;
按照预设算法将所述基准数字转换为基准字符串。
3.根据权利要求1所述的方法,其特征在于,所述采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串的步骤包括:
采用所述哈希数组,确定所述基准字符串的位置变换信息;
按照所述位置变换信息,对所述基准字符串进行位置变换,生成目标字符串。
4.根据权利要求3所述的方法,其特征在于,所述采用所述哈希数组,确定所述基准字符串的位置变换信息的步骤包括:
将所述哈希数组中的每个值与预设的盐值分别相乘后取模,得到所述基准字符串的位置变换信息。
5.根据权利要求1所述的方法,其特征在于,还包括:
当接收到所述邀请码时,提取所述邀请码中的验证字符串并基于所述验证字符串对所述邀请码进行验证。
6.一种邀请码的生成装置,其特征在于,包括:
基准字符串确定模块,用于确定生成邀请码的基准字符串;
哈希计算模块,用于对所述基准字符串进行哈希计算,生成MD5值;
验证字符串生成模块,用于依据所述基准字符串和所述MD5值,生成哈希数组,并按预设规则将所述哈希数组转换为验证字符串;
目标字符串生成模块,用于采用所述哈希数组对所述基准字符串进行位置变换,生成目标字符串;
邀请码组合模块,用于将所述验证字符串和目标字符串组合为邀请码;
其中,验证字符串生成模块具体包括如下子模块:
基准字符提取子模块,用于提取所述基准字符串中特定下标对应的基准字符;
下标值确定子模块,用于确定在预置的第一映射表中所述基准字符对应的下标值;
目标字节提取子模块,用于从所述MD5值中提取出所述下标值对应的目标字节;
哈希数组生成子模块,用于依据所述目标字节,生成哈希数组;
所述哈希数组生成子模块具体包括如下单元:
绝对值数值确定单元,用于确定在预置的第二映射表中所述目标字节对应的绝对值数值;
哈希数组计算单元,用于将所述绝对值数值与预设的盐值相乘后取模,得到哈希数组。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述邀请码的生成方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述邀请码的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593765.3A CN110489466B (zh) | 2019-07-03 | 2019-07-03 | 邀请码的生成方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593765.3A CN110489466B (zh) | 2019-07-03 | 2019-07-03 | 邀请码的生成方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489466A CN110489466A (zh) | 2019-11-22 |
CN110489466B true CN110489466B (zh) | 2023-09-08 |
Family
ID=68546541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910593765.3A Active CN110489466B (zh) | 2019-07-03 | 2019-07-03 | 邀请码的生成方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489466B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111181839B (zh) * | 2019-12-25 | 2021-08-24 | 口碑(上海)信息技术有限公司 | 应用分享中的数据处理方法、装置及设备 |
CN111309601A (zh) * | 2020-02-03 | 2020-06-19 | 思客云(北京)软件技术有限公司 | 用于生成源代码缺陷漏洞id的方法、设备和计算机可读存储介质 |
CN112487253B (zh) * | 2020-11-03 | 2024-04-05 | 光蕊科技(深圳)有限公司 | 用户邀请码生成方法、验证方法、装置、设备及存储介质 |
CN112329393A (zh) * | 2020-11-05 | 2021-02-05 | 广东科徕尼智能科技有限公司 | 一种短码id的生成方法、设备、存储介质 |
CN115086008B (zh) * | 2022-06-13 | 2024-02-09 | 北京信长城科技发展有限公司 | 密码安全保护的实现方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281794A (zh) * | 2014-09-23 | 2015-01-14 | 北京奇艺世纪科技有限公司 | 一种密码存储及验证的方法和装置 |
CN104574090A (zh) * | 2013-10-09 | 2015-04-29 | 无锡中科方德软件有限公司 | 一种结合溯源码和随机加密密码的防伪方法 |
EP3099093A1 (fr) * | 2015-05-28 | 2016-11-30 | Orange | Procédé de contrôle d'accès à un service |
CN109951268A (zh) * | 2019-02-18 | 2019-06-28 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10091188B2 (en) * | 2015-03-30 | 2018-10-02 | Qualcomm Incorporated | Accelerated passphrase verification |
-
2019
- 2019-07-03 CN CN201910593765.3A patent/CN110489466B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574090A (zh) * | 2013-10-09 | 2015-04-29 | 无锡中科方德软件有限公司 | 一种结合溯源码和随机加密密码的防伪方法 |
CN104281794A (zh) * | 2014-09-23 | 2015-01-14 | 北京奇艺世纪科技有限公司 | 一种密码存储及验证的方法和装置 |
EP3099093A1 (fr) * | 2015-05-28 | 2016-11-30 | Orange | Procédé de contrôle d'accès à un service |
CN109951268A (zh) * | 2019-02-18 | 2019-06-28 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110489466A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489466B (zh) | 邀请码的生成方法、装置、终端设备及存储介质 | |
CN109040341B (zh) | 智能合约地址的生成方法、装置、计算机设备及可读存储介质 | |
US20190158296A1 (en) | Redactable document signatures | |
CN109977684B (zh) | 一种数据传输方法、装置及终端设备 | |
CN112487253B (zh) | 用户邀请码生成方法、验证方法、装置、设备及存储介质 | |
CN106610995B (zh) | 一种创建密文索引的方法、装置及系统 | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
CN110503434A (zh) | 基于哈希算法的数据验证方法、装置、设备和存储介质 | |
CN110457916B (zh) | 一种电子合同加密方法、装置及终端设备 | |
CN112001376B (zh) | 基于开源组件的指纹识别方法、装置、设备及存储介质 | |
CN110717151A (zh) | 一种数字指纹处理及签名处理方法 | |
CN112015806A (zh) | 区块链存储数据的方法及装置 | |
CN114365134A (zh) | 使用不可克隆函数的安全身份证 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
CN110515591B (zh) | 基于区块链的随机数生成方法及装置 | |
CN111984989A (zh) | 一种自身校验发布和访问url的方法、装置、系统和介质 | |
CN114710468A (zh) | 一种域名生成和识别方法、装置、设备及介质 | |
CN111756749B (zh) | 安全访问方法、装置、设备及存储介质 | |
CN114499465A (zh) | 散列算法及电路、电子设备 | |
CN110100409B (zh) | 产生安全散列值的方法和设备 | |
US10496377B1 (en) | Method and system generating string based random permutation | |
CN112637160A (zh) | 登陆验证方法、装置、设备和存储介质 | |
CN113837765B (zh) | 支付校验方法、装置、设备及存储介质 | |
CN115935429B (zh) | 一种数据处理方法、装置、介质以及电子设备 | |
CN114742017B (zh) | 一种产品防伪码的生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |