用于实现业务任务的码的生成方法及装置的制造方法_2

文档序号:9471252阅读:来源:国知局
个实施例的用于实现业务任务的码的校验装置的结构不意图;以及
[0078]图7示出了根据本发明另一个实施例的用于实现业务任务的码的校验装置的结构示意图。
【具体实施方式】
[0079]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0080]为解决上述技术问题,本发明实施例提供了一种用于实现业务任务的码的生成方法,该方法可以应用在终端、服务器或者其他设备中,用于生成业务任务的码。这里的业务任务可以如上文提及的,在互联网应用的很多场景中所涉及的业务任务,如邀请任务、兑换游戏道具、减免购物费用等,本发明实施例对此不加以限制。
[0081]图1示出了根据本发明一个实施例的用于实现业务任务的码的生成方法的流程图。如图1所示,该方法至少包括以下步骤S102至步骤S108。
[0082]步骤S102,获取用于生成待生成码的字符串,从该字符串中提取第一子字符串,并从剩余部分提取第二子字符串。
[0083]步骤S104,获取业务的任务标识,将任务标识转换为第一子字符串中的字符,作为待生成码中的作用码。
[0084]步骤S106,从第二子字符串中随机抽取第一指定长度的字符串作为待生成码中的混淆码,并利用作用码和混淆码,生成待生成码中用于自校验的校验码。
[0085]步骤S108,基于作用码、混淆码以及用于自校验的校验码,生成待生成码。
[0086]在本发明实施例中,将业务的任务标识转换为的第一子字符串中的字符,作为待生成码中的作用码,从而在业务的任务标识不重复的情况下,保证了即将生成的码不重复,解决了现有技术中当生成的码越多时重复的概率越大,进而生成码后还需要进行去重操作,导致生成码的效率较低的问题。并且,本发明实施例生成的码除了包括作用码外,还包括了混淆码以及用于自校验的校验码,从而起到了防篡改、防暴力破解的作用,极大提高了生成的码的安全性。进一步,本发明实施例在解析生成的码得到其中的作用码后,通过作用码能够计算出对应业务的任务标识,从而可以根据业务的任务标识查询到相应的业务任务,进而进行业务逻辑操作。由于生成的码的长度大于业务的任务标识的长度,本发明实施例直接通过业务的任务标识查询相应的业务任务,相比于现有技术中需要使用生成的码本身去做索引查找相应的业务,查询业务的效率更高。并且,生成的码中通常包含字母,字母占用字节比数字多,而业务的任务标识一般是由数字组成,因而业务的任务标识占用字节比生成的码少,因此本发明实施例使用业务的任务标识做索引,相比于现有技术中使用生成的码本身做索引,能够减少内存的占用,节约系统资源。
[0087]上文步骤S102中提及的用于生成待生成码的字符串,该字符串中可以有相同的字符或者该字符串中的字符两两不同。当字符串中有相同的字符时,从该字符串中提取的第一子字符串和第二子字符串中可能存在相同的字符。例如,获取用于生成待生成码的字符串为“abcdefghl23456789ab”,从该字符串中提取第一子字符串为“abcdefghl2”,第二子字符串为“3456789ab”,这里的第一子字符串和第二子字符串中存在相同的字符“ab”。为了保证后续对生成的码进行准确地解析,在步骤S108中基于作用码、混淆码以及用于自校验的校验码生成待生成码时,可以指定这三者(即,作用码、混淆码以及用于自校验的校验码)的排序位置,例如,排序位置依次为混淆码、作用码以及用于自校验的校验码;或者,排序位置依次为作用码、混淆码以及用于自校验的校验码;或者,排序位置依次为用于自校验的校验码、作用码以及混淆码。在后续对生成的码进行解析时,依据指定的排序位置进行解析校验,从而对生成的码进行准确地解析。
[0088]当字符串中的字符两两不同时,从该字符串中提取的第一子字符串和第二子字符串中均不存在相同的字符,以及第一子字符串与第二子字符串相互之间也不存在相同的字符,则基于第一子字符串生成的作用码以及基于第二子字符串生成的混淆码也不存在相同的字符,因而对于生成的码中除去用于自校验的校验码后的任意字符,可以准确地区分是作用码或混淆码。因此,在步骤S108中基于作用码、混淆码以及用于自校验的校验码生成待生成码时,不需要指定作用码和混淆码的排序位置,例如混淆码可以打乱随机插入作用码中,仍然可以保证后续对生成的码进行准确地解析。并且,这种生成码的方式能够进一步起到防篡改、防暴力破解的作用,极大提高了生成的码的安全性。需要说明的是,在实际操作中也可以指定作用码和混淆码的排序位置,本发明实施例对此不加以限制。
[0089]步骤S104中基于业务的任务标识生成待生成码中的作用码,本发明实施例提供了一种可选的方案,在该方案中,第一子字符串为M位,乱序第一子字符串,得到M进制数的字符列表,进而基于M进制数的字符列表,计算任务标识的M进制数。进一步,可以确定任务标识的当前进制数,进而基于M进制数的字符列表,将任务标识从当前进制数转换为M进制数。
[0090]例如,业务的任务标识为数据表中的自增列,如从十进制数“O”开始自增,步长为1,自增列为0、1、2、3…η,η为正整数。用于生成待生成码的字符串为Μ+Ν 位的 “s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为 M(M = 26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为 N(N = 5)位的 “a4hxv”。乱序第一子字符串,得到M进制数的字符列表为“ws5gr2pumk7q3c6tfdj9bzney8”,自增列中十进制数“O”的M进制数为“w”作为待生成码中的作用码,十进制数“ I”的M进制数为“s”作为待生成码中的作用码,以此类推。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0091]在步骤S106中利用作用码和混淆码,生成待生成码中用于自校验的校验码,本发明实施例提供了一种可选的方案。图2示出了根据本发明一个实施例的用于自校验的校验码的生成方法的流程图。如图2所示,该方法至少包括以下步骤S202至步骤S206。
[0092]步骤S202,将混淆码打乱随机插入作用码中,生成中间码。
[0093]在该步骤中,以上文的例子为例,从第二子字符串“a4hxv”中随机抽取第一指定长度(假设为4)的字符串“ahx4”作为待生成码中的混淆码,将混淆码“ahx4”打乱随机插入作用码“w”中,生成中间码为“a4hxw”。进一步,还可以将混淆码打乱随机插入作用码的任意多个位置生成中间码,例如,将混淆码“ahx4”打乱随机插入作用码“w”的任意多个位置,生成中间码为“a4whx”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0094]步骤S204,计算中间码的校验码。
[0095]在该步骤中,本发明实施例提供了一种可选的方案,即,字符串为M+N位,可以乱序该字符串,得到M+N进制数的字符列表,并计算中间码的CRC (Cyclic Redundancy Check,循环校验码)值。随后,基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。
[0096]以上文的例子为例,生成的中间码为“a4whx”,计算该中间码的CRC32值为-10822859820(由二进制数转换得到的十进制数)。在计算码的CRC值时,可以有不同的CRC算法,如CRC8、CRC12、CRC16、CRC32等,每个CRC算法表示不同的生成多项式。本例中示意性地计算中间码的CRC32值,本发明实施例对此不加以限制。随后,基于M+N进制数的字符列表,将中间码的CRC32值“-10822859820”转换为M+N进制数“aksdf8dk”,作为中间码的校验码。
[0097]步骤S206,从计算得到的中间码的检验码中取第二指定长度的校验码,作为待生成码中用于自校验的校验码。
[0098]在该步骤中,可以从计算得到的中间码的检验码的初始位置起,顺序取第二指定长度位,作为待生成码中用于自校验的校验码;或者,从计算得到的中间码的检验码的末尾位置起,逆序取第二指定长度位,作为待生成码中用于自校验的校验码。
[0099]在计算得到的中间码的检验码“aksdfSdk”中,从初始位置起,顺序取第二指定长度(假设为3)位“aks”,作为待生成码中用于自校验的校验码。或者,从末尾位置起,逆序取第二指定长度(假设为3)位“8dk”,作为待生成码中用于自校验的校验码。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0100]进一步,步骤S106中提及的第一指定长度可以通过以下步骤来实现,S卩,确定待生成码的长度以及待生成码中的作用码的长度,进而将待生成码的长度减去待生成码中的作用码的长度与第二指定长度(即,待生成码中用于自校验的校验码的长度)之和,得到的长度值确定为第一指定长度(即,待生成码中的混淆码的长度)。在实际操作中,待生成码的长度、待生成码中的作用码的长度、待生成码中的混淆码的长度以及待生成码中用于自校验的校验码的长度,这四个长度中确定任意三个,即可得到第四个长度。
[0101]在步骤S106利用作用码和混淆码,生成待生成码中用于自校验的校验码之后,步骤S108中基于作用码、混淆码以及用于自校验的校验码,生成待生成码,本发明实施例提供了一种可选的方案,在该可选的方案中,由于混淆码打乱随机插入作用码中生成了中间码,因而可以将用于自校验的校验码附加在中间码的末尾,生成待生成码;或者,还可以将用于自校验的校验码附加在中间码的前端,生成待生成码。
[0102]例如,上文步骤S202中生成的中间码为“a4whx”,步骤S206中从中间码的检验码“aksdfSdk”中截取的用于自校验的校验码为“aks”或“8dk”。
[0103]对于用于自校验的校验码“aks”,可以将“aks”附加在中间码“a4whx”的末尾,生成待生成码为“a4whxaks” ;或者将“aks”附加在中间码“a4whx”的前端,生成待生成码为“ aksa4whx,,。
[0104]对于用于自校验的校验码“8dk”,可以将“8dk”附加在中间码“a4whx”的末尾,生成待生成码为“a4whx8dk” ;或者将“8dk”附加在中间码“a4whx”的前端,生成待生成码为“8dka4whx,,。
[0105]上文例子列举了自增列中十进制数为“O”时,根据上述
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1