CN105224415B - 用于实现业务任务的码的生成方法及装置 - Google Patents

用于实现业务任务的码的生成方法及装置 Download PDF

Info

Publication number
CN105224415B
CN105224415B CN201510624970.3A CN201510624970A CN105224415B CN 105224415 B CN105224415 B CN 105224415B CN 201510624970 A CN201510624970 A CN 201510624970A CN 105224415 B CN105224415 B CN 105224415B
Authority
CN
China
Prior art keywords
code
generated
check
character
substring
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
Application number
CN201510624970.3A
Other languages
English (en)
Other versions
CN105224415A (zh
Inventor
王成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510624970.3A priority Critical patent/CN105224415B/zh
Publication of CN105224415A publication Critical patent/CN105224415A/zh
Application granted granted Critical
Publication of CN105224415B publication Critical patent/CN105224415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于实现业务任务的码的生成方法及装置。该方法包括:获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码,并利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。本发明实施例保证了即将生成的码不重复,解决了现有技术中生成码后还需要进行去重操作,导致生成码的效率较低的问题。

Description

用于实现业务任务的码的生成方法及装置
技术领域
本发明涉及数据处理技术领域,特别是一种用于实现业务任务的码的生成方法及装置。
背景技术
在互联网应用中,有很多场景是需要使用“码”的,比如新产品上线,封测使用“邀请码”实现邀请注册;游戏中使用“礼品码”发放给活跃玩家,用于在游戏内兑换道具;网络购物中使用“优惠码”减免购物费用,给用户带去优惠,等等。
现有技术中,“码”可以通过随机法或者一定的规则生成。在通过随机法生成时,随机生成的字符串即作为“码”,在码的数量很大的情况下会出现重复,这种方式产生的码需要有去除重复生成的码的步骤,或者生成码后立即检测码是否重复。当码越多时,重复的概率越大,生成码的效率就越低。另外,无论是随机法还是一定规则生成的码,均是需要用码本身去做索引,进而查找相应的业务,在校验码的时候,检索量就大,且会占用很大的内存,校验效率很低。因而,亟待提供解决上述问题的方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于实现业务任务的码的生成方法及装置。
依据本发明的一方面,提供了一种用于实现业务任务的码的生成方法,包括:
获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码,并利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
可选地,所述第一子字符串为M位,将所述任务标识转换为所述第一子字符串中的字符,包括:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
可选地,基于所述M进制数的字符列表,计算所述任务标识的M进制数,包括:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
可选地,利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码,包括:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
可选地,将所述混淆码打乱随机插入所述作用码中,生成中间码,包括:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
可选地,所述字符串为M+N位,计算所述中间码的校验码,包括:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
可选地,从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码,包括:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
可选地,通过以下步骤确定所述第一指定长度:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
可选地,所述字符串中的字符两两不同。
可选地,基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码,包括:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。
依据本发明的另一方面,还提供了一种用于实现业务任务的码的生成装置,包括:
子字符串提取组件,适于获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
作用码生成组件,适于获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
混淆码生成组件,适于从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码;
自校验码生成组件,适于利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
待生成码生成组件,适于基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
可选地,所述第一子字符串为M位,所述作用码生成组件还适于:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
可选地,所述作用码生成组件还适于:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
可选地,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
可选地,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
可选地,所述字符串为M+N位,所述自校验码生成组件还适于:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
可选地,所述自校验码生成组件还适于:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
可选地,所述混淆码生成组件还适于:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
可选地,所述字符串中的字符两两不同。
可选地,所述待生成码生成组件还适于:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。
在本发明实施例中,将业务的任务标识转换为的第一子字符串中的字符,作为待生成码中的作用码,从而在业务的任务标识不重复的情况下,保证了即将生成的码不重复,解决了现有技术中当生成的码越多时重复的概率越大,进而生成码后还需要进行去重操作,导致生成码的效率较低的问题。并且,本发明实施例生成的码除了包括作用码外,还包括了混淆码以及用于自校验的校验码,从而起到了防篡改、防暴力破解的作用,极大提高了生成的码的安全性。进一步,本发明实施例在解析生成的码得到其中的作用码后,通过作用码能够计算出对应业务的任务标识,从而可以根据业务的任务标识查询到相应的业务任务,进而进行业务逻辑操作。由于生成的码的长度大于业务的任务标识的长度,本发明实施例直接通过业务的任务标识查询相应的业务任务,相比于现有技术中需要使用生成的码本身去做索引查找相应的业务,查询业务的效率更高。并且,生成的码中通常包含字母,字母占用字节比数字多,而业务的任务标识一般是由数字组成,因而业务的任务标识占用字节比生成的码少,因此本发明实施例使用业务的任务标识做索引,相比于现有技术中使用生成的码本身做索引,能够减少内存的占用,节约系统资源。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的用于实现业务任务的码的生成方法的流程图;
图2示出了根据本发明一个实施例的用于自校验的校验码的生成方法的流程图;
图3示出了根据本发明一个实施例的用于实现业务任务的码的校验方法的流程图;
图4示出了根据本发明一个实施例的待计算码的待校验字符的生成方法的流程图;
图5示出了根据本发明一个实施例的用于实现业务任务的码的生成装置的结构示意图;
图6示出了根据本发明一个实施例的用于实现业务任务的码的校验装置的结构示意图;以及
图7示出了根据本发明另一个实施例的用于实现业务任务的码的校验装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种用于实现业务任务的码的生成方法,该方法可以应用在终端、服务器或者其他设备中,用于生成业务任务的码。这里的业务任务可以如上文提及的,在互联网应用的很多场景中所涉及的业务任务,如邀请任务、兑换游戏道具、减免购物费用等,本发明实施例对此不加以限制。
图1示出了根据本发明一个实施例的用于实现业务任务的码的生成方法的流程图。如图1所示,该方法至少包括以下步骤S102至步骤S108。
步骤S102,获取用于生成待生成码的字符串,从该字符串中提取第一子字符串,并从剩余部分提取第二子字符串。
步骤S104,获取业务的任务标识,将任务标识转换为第一子字符串中的字符,作为待生成码中的作用码。
步骤S106,从第二子字符串中随机抽取第一指定长度的字符串作为待生成码中的混淆码,并利用作用码和混淆码,生成待生成码中用于自校验的校验码。
步骤S108,基于作用码、混淆码以及用于自校验的校验码,生成待生成码。
在本发明实施例中,将业务的任务标识转换为的第一子字符串中的字符,作为待生成码中的作用码,从而在业务的任务标识不重复的情况下,保证了即将生成的码不重复,解决了现有技术中当生成的码越多时重复的概率越大,进而生成码后还需要进行去重操作,导致生成码的效率较低的问题。并且,本发明实施例生成的码除了包括作用码外,还包括了混淆码以及用于自校验的校验码,从而起到了防篡改、防暴力破解的作用,极大提高了生成的码的安全性。进一步,本发明实施例在解析生成的码得到其中的作用码后,通过作用码能够计算出对应业务的任务标识,从而可以根据业务的任务标识查询到相应的业务任务,进而进行业务逻辑操作。由于生成的码的长度大于业务的任务标识的长度,本发明实施例直接通过业务的任务标识查询相应的业务任务,相比于现有技术中需要使用生成的码本身去做索引查找相应的业务,查询业务的效率更高。并且,生成的码中通常包含字母,字母占用字节比数字多,而业务的任务标识一般是由数字组成,因而业务的任务标识占用字节比生成的码少,因此本发明实施例使用业务的任务标识做索引,相比于现有技术中使用生成的码本身做索引,能够减少内存的占用,节约系统资源。
上文步骤S102中提及的用于生成待生成码的字符串,该字符串中可以有相同的字符或者该字符串中的字符两两不同。当字符串中有相同的字符时,从该字符串中提取的第一子字符串和第二子字符串中可能存在相同的字符。例如,获取用于生成待生成码的字符串为“abcdefgh123456789ab”,从该字符串中提取第一子字符串为“abcdefgh12”,第二子字符串为“3456789ab”,这里的第一子字符串和第二子字符串中存在相同的字符“ab”。为了保证后续对生成的码进行准确地解析,在步骤S108中基于作用码、混淆码以及用于自校验的校验码生成待生成码时,可以指定这三者(即,作用码、混淆码以及用于自校验的校验码)的排序位置,例如,排序位置依次为混淆码、作用码以及用于自校验的校验码;或者,排序位置依次为作用码、混淆码以及用于自校验的校验码;或者,排序位置依次为用于自校验的校验码、作用码以及混淆码。在后续对生成的码进行解析时,依据指定的排序位置进行解析校验,从而对生成的码进行准确地解析。
当字符串中的字符两两不同时,从该字符串中提取的第一子字符串和第二子字符串中均不存在相同的字符,以及第一子字符串与第二子字符串相互之间也不存在相同的字符,则基于第一子字符串生成的作用码以及基于第二子字符串生成的混淆码也不存在相同的字符,因而对于生成的码中除去用于自校验的校验码后的任意字符,可以准确地区分是作用码或混淆码。因此,在步骤S108中基于作用码、混淆码以及用于自校验的校验码生成待生成码时,不需要指定作用码和混淆码的排序位置,例如混淆码可以打乱随机插入作用码中,仍然可以保证后续对生成的码进行准确地解析。并且,这种生成码的方式能够进一步起到防篡改、防暴力破解的作用,极大提高了生成的码的安全性。需要说明的是,在实际操作中也可以指定作用码和混淆码的排序位置,本发明实施例对此不加以限制。
步骤S104中基于业务的任务标识生成待生成码中的作用码,本发明实施例提供了一种可选的方案,在该方案中,第一子字符串为M位,乱序第一子字符串,得到M进制数的字符列表,进而基于M进制数的字符列表,计算任务标识的M进制数。进一步,可以确定任务标识的当前进制数,进而基于M进制数的字符列表,将任务标识从当前进制数转换为M进制数。
例如,业务的任务标识为数据表中的自增列,如从十进制数“0”开始自增,步长为1,自增列为0、1、2、3…n,n为正整数。用于生成待生成码的字符串为M+N位的“s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为M(M=26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为N(N=5)位的“a4hxv”。乱序第一子字符串,得到M进制数的字符列表为“ws5gr2pumk7q3c6tfdj9bzney8”,自增列中十进制数“0”的M进制数为“w”作为待生成码中的作用码,十进制数“1”的M进制数为“s”作为待生成码中的作用码,以此类推。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
在步骤S106中利用作用码和混淆码,生成待生成码中用于自校验的校验码,本发明实施例提供了一种可选的方案。图2示出了根据本发明一个实施例的用于自校验的校验码的生成方法的流程图。如图2所示,该方法至少包括以下步骤S202至步骤S206。
步骤S202,将混淆码打乱随机插入作用码中,生成中间码。
在该步骤中,以上文的例子为例,从第二子字符串“a4hxv”中随机抽取第一指定长度(假设为4)的字符串“ahx4”作为待生成码中的混淆码,将混淆码“ahx4”打乱随机插入作用码“w”中,生成中间码为“a4hxw”。进一步,还可以将混淆码打乱随机插入作用码的任意多个位置生成中间码,例如,将混淆码“ahx4”打乱随机插入作用码“w”的任意多个位置,生成中间码为“a4whx”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
步骤S204,计算中间码的校验码。
在该步骤中,本发明实施例提供了一种可选的方案,即,字符串为M+N位,可以乱序该字符串,得到M+N进制数的字符列表,并计算中间码的CRC(Cyclic Redundancy Check,循环校验码)值。随后,基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。
以上文的例子为例,生成的中间码为“a4whx”,计算该中间码的CRC32值为-10822859820(由二进制数转换得到的十进制数)。在计算码的CRC值时,可以有不同的CRC算法,如CRC8、CRC12、CRC16、CRC32等,每个CRC算法表示不同的生成多项式。本例中示意性地计算中间码的CRC32值,本发明实施例对此不加以限制。随后,基于M+N进制数的字符列表,将中间码的CRC32值“-10822859820”转换为M+N进制数“aksdf8dk”,作为中间码的校验码。
步骤S206,从计算得到的中间码的检验码中取第二指定长度的校验码,作为待生成码中用于自校验的校验码。
在该步骤中,可以从计算得到的中间码的检验码的初始位置起,顺序取第二指定长度位,作为待生成码中用于自校验的校验码;或者,从计算得到的中间码的检验码的末尾位置起,逆序取第二指定长度位,作为待生成码中用于自校验的校验码。
在计算得到的中间码的检验码“aksdf8dk”中,从初始位置起,顺序取第二指定长度(假设为3)位“aks”,作为待生成码中用于自校验的校验码。或者,从末尾位置起,逆序取第二指定长度(假设为3)位“8dk”,作为待生成码中用于自校验的校验码。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
进一步,步骤S106中提及的第一指定长度可以通过以下步骤来实现,即,确定待生成码的长度以及待生成码中的作用码的长度,进而将待生成码的长度减去待生成码中的作用码的长度与第二指定长度(即,待生成码中用于自校验的校验码的长度)之和,得到的长度值确定为第一指定长度(即,待生成码中的混淆码的长度)。在实际操作中,待生成码的长度、待生成码中的作用码的长度、待生成码中的混淆码的长度以及待生成码中用于自校验的校验码的长度,这四个长度中确定任意三个,即可得到第四个长度。
在步骤S106利用作用码和混淆码,生成待生成码中用于自校验的校验码之后,步骤S108中基于作用码、混淆码以及用于自校验的校验码,生成待生成码,本发明实施例提供了一种可选的方案,在该可选的方案中,由于混淆码打乱随机插入作用码中生成了中间码,因而可以将用于自校验的校验码附加在中间码的末尾,生成待生成码;或者,还可以将用于自校验的校验码附加在中间码的前端,生成待生成码。
例如,上文步骤S202中生成的中间码为“a4whx”,步骤S206中从中间码的检验码“aksdf8dk”中截取的用于自校验的校验码为“aks”或“8dk”。
对于用于自校验的校验码“aks”,可以将“aks”附加在中间码“a4whx”的末尾,生成待生成码为“a4whxaks”;或者将“aks”附加在中间码“a4whx”的前端,生成待生成码为“aksa4whx”。
对于用于自校验的校验码“8dk”,可以将“8dk”附加在中间码“a4whx”的末尾,生成待生成码为“a4whx8dk”;或者将“8dk”附加在中间码“a4whx”的前端,生成待生成码为“8dka4whx”。
上文例子列举了自增列中十进制数为“0”时,根据上述方案生成的业务任务的码的情况,对于自增列中其他十进制数,与十进制数为“0”的情况类似,此处不再赘述。
在终端、服务器或者其他设备根据上文提及的方法生成业务任务的码(即,待生成码)之后,当接收到下发业务任务的码的请求或指令时,可以将生成的业务任务的码下发给多个目标客户端。从而,多个目标客户端利用接收到的业务任务的码,向终端、服务器或者其他设备中指定的业务数据库中查找相应的业务任务,由终端、服务器或者其他设备实现业务逻辑操作。
下面将介绍如何校验业务任务的码、以及利用业务任务的码查询相应的业务任务,进而实现业务逻辑操作。
图3示出了根据本发明一个实施例的用于实现业务任务的码的校验方法的流程图。如图3所示,该方法至少包括以下步骤S302至步骤S308。
步骤S302,获取待校验的码。
在该步骤中,待校验的码是基于作用码、混淆码以及用于自校验的校验码而生成,其中,用于自校验的校验码是利用作用码和混淆码而生成。并且,作用码是由业务的任务标识转化为的第一子字符串中的字符,混淆码是从第二子字符串中随机抽取的第一指定长度的字符串,第一子字符串从用于生成待校验的码的字符串中提取,第二子字符串从字符串被提取第一子字符串之后的剩余部分提取。
仍以上文为例,在终端、服务器或者其他设备生成码“a4whx8dk”(该码用于实现业务任务)后,将该码下发给一个或多个目标客户端。目标客户端利用接收到的业务任务的码进行码的校验和业务的查找,在实际操作中,目标客户端可以将待校验的码提交给终端、服务器或者其他设备,进而进行码的校验和业务的查找。终端、服务器或者其他设备获取的待校验的码为“a4whx8dk”,业务的任务标识为数据表中的自增列,如从十进制数“0”开始自增,步长为1,自增列为0、1、2、3…n,n为正整数。用于生成待校验的码的字符串为M+N位的“s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为M(M=26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为N(N=5)位的“a4hxv”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
步骤S304,获取并解析待校验的码的生成规则,从待校验的码中截取用于自校验的校验码,将剩余的码作为待计算码。
在该步骤中,待校验的码的生成规则包括将用于自校验的校验码附加在作用码和混淆码组合得到的中间码的指定位置,其中,用于自校验的校验码为第二指定长度。此时,解析待校验的码的生成规则,确定第二指定长度和指定位置,进而根据指定位置,从待校验的码中截取第二指定长度的字符,作为用于自校验的校验码。这里,指定位置可以包括中间码的初始位置、末尾位置或者其他位置。
当指定位置为中间码的初始位置时,可以从待校验的码的初始位置起,顺序截取第二指定长度的字符。
当指定位置为中间码的末尾位置时,可以从待校验的码的末尾位置起,逆序截取第二指定长度的字符。
在上文的例子中,获取的待校验的码为“a4whx8dk”,用于自校验的校验码的第二指定长度为3,指定位置为中间码的末尾位置。此时,从待校验的码“a4whx8dk”的末尾位置起,逆序截取第二指定长度“3”的字符“8dk”,作为用于自校验的校验码。此时,剩余的码为“a4whx”作为待计算码。
步骤S306,获取并解析用于自校验的校验码的生成规则,生成待计算码的待校验字符。
步骤S308,比较用于自校验的校验码与待校验字符,根据比较结果确定待校验的码是否通过校验。
在步骤S306中解析用于自校验的校验码的生成规则,生成待计算码的待校验字符,本发明实施例提供了一种可选的方案,在该方案中,用于自校验的校验码的生成规则包括将混淆码打乱随机插入作用码中,生成中间码,进而计算中间码的校验码,随后从中间码的检验码中取第二指定长度的校验码,作为用于自校验的校验码。图4示出了根据本发明一个实施例的待计算码的待校验字符的生成方法的流程图。如图4所示,该方法至少包括以下步骤S402至步骤S406。
步骤S402,解析用于自校验的校验码的生成规则,确定计算中间码的校验码的规则以及从中间码的检验码中取第二指定长度的用于自校验的校验码的规则。
步骤S404,根据计算中间码的校验码的规则,计算待计算码的校验码。
在该步骤中,步骤S402确定的计算中间码的校验码的规则包括乱序字符串,得到M+N进制数的字符列表,进而计算中间码的CRC值,随后基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。此时,计算待计算码的CRC值,进而基于M+N进制数的字符列表,将待计算码的CRC值转换为M+N进制数,作为待计算码的校验码。
上文例子中,待计算码为“a4whx”,该待计算码“a4whx”的CRC32值为“-10822859820”,将待计算码的CRC32值转换为M+N进制数为“aksdf8dk”,作为待计算码的校验码。
步骤S406,根据从中间码的检验码中取第二指定长度的用于自校验的校验码的规则,从待计算码的校验码中截取第二指定长度的待校验字符。
在该步骤中,当步骤S402确定的从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的初始位置起,顺序取第二指定长度位,作为用于自校验的校验码。此时,可以从待计算码的校验码的初始位置起,顺序截取第二指定长度位,作为待校验字符。
当步骤S402确定的从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的末尾位置起,逆序取第二指定长度位,作为用于自校验的校验码。此时,可以从待计算码的校验码的末尾位置起,逆序截取第二指定长度位,作为待校验字符。
在上文例子中,从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的末尾位置起,逆序取第二指定长度位,作为用于自校验的校验码。此时,可以从待计算码的校验码“aksdf8dk”的末尾位置起,逆序截取第二指定长度“3”位“8dk”,作为待校验字符。
在上文步骤S308中,若比较结果为用于自校验的校验码与待校验字符相同,则确定待校验的码通过校验;反之,若比较结果为用于自校验的校验码与待校验字符不相同,则确定待校验的码未通过校验。在上述例子中,用于自校验的校验码“8dk”与待校验字符“8dk”相同,则确定待校验的码通过校验。
进一步,在步骤S308确定待校验的码通过校验之后,可以从业务任务的码中提取业务的任务标识,进而根据任务标识查找相应的业务任务,并进行业务逻辑操作。即,可以从待计算码中删除存在于第二子字符串中的字符,得到待校验的码中的作用码,进而获取并解析作用码的转化规则,将待校验的码中的作用码转化为任务标识,进而根据任务标识查找相应的业务任务,并进行业务逻辑操作。
在该步骤中,作用码的转化规则包括乱序第一子字符串,得到M进制数的字符列表,进而基于M进制数的字符列表,计算任务标识的M进制数。此时,可以根据M进制数的字符列表,将待校验的码中的作用码从M进制数转换为任务标识。
在上文例子中,待计算码为“a4whx”,第二子字符串为N(N=5)位的“a4hxv”,从待计算码中删除存在于第二子字符串中的字符(即,混淆码),得到待校验的码中的作用码为“w”。随后,基于M进制数的字符列表,将待校验的码中的作用码“w”从M进制数转化为任务标识“0”。之后,根据任务标识“0”查找相应的业务任务,并进行业务逻辑操作。
本发明实施例直接通过业务的任务标识查询相应的业务任务,相比于现有技术中需要使用生成的码本身去做索引查找相应的业务,查询业务的效率更高。并且,生成的码中通常包含字母,字母占用字节比数字多,而业务的任务标识一般是由数字组成,因而业务的任务标识占用字节比生成的码少,因此本发明实施例使用业务的任务标识做索引,相比于现有技术中使用生成的码本身做索引,能够减少内存的占用,节约系统资源。
基于上文各个实施例提供的用于实现业务任务的码的生成方法,基于同一发明构思,本发明实施例还提供了一种用于实现业务任务的码的生成装置,该装置可以应用在终端、服务器或者其他设备中,用于生成业务任务的码。这里的业务任务可以如上文提及的,在互联网应用的很多场景中所涉及的业务任务,如邀请任务、兑换游戏道具、减免购物费用、兑换礼品等,本发明实施例对此不加以限制。
图5示出了根据本发明一个实施例的用于实现业务任务的码的生成装置的结构示意图。如图5所示,该装置500至少可以包括子字符串提取组件510、作用码生成组件520、混淆码生成组件530、自校验码生成组件540以及待生成码生成组件550。
现介绍本发明实施例的用于实现业务任务的码的生成装置500的各组成或器件的功能以及各部分间的连接关系:
子字符串提取组件510,适于获取用于生成待生成码的字符串,从字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
作用码生成组件520,与子字符串提取组件510相耦合,适于获取业务的任务标识,将任务标识转换为第一子字符串中的字符,作为待生成码中的作用码;
混淆码生成组件530,与作用码生成组件520相耦合,适于从第二子字符串中随机抽取第一指定长度的字符串作为待生成码中的混淆码;
自校验码生成组件540,与混淆码生成组件530相耦合,适于利用作用码和混淆码,生成待生成码中用于自校验的校验码;
待生成码生成组件550,与自校验码生成组件540相耦合,适于基于作用码、混淆码以及用于自校验的校验码,生成待生成码。
在本发明一实施例中,子字符串提取组件510获取的用于生成待生成码的字符串,该字符串中可以有相同的字符或者该字符串中的字符两两不同。当字符串中有相同的字符时,从该字符串中提取的第一子字符串和第二子字符串中可能存在相同的字符。例如,获取用于生成待生成码的字符串为“abcdefgh123456789ab”,从该字符串中提取第一子字符串为“abcdefgh12”,第二子字符串为“3456789ab”,这里的第一子字符串和第二子字符串中存在相同的字符“ab”。为了保证后续对生成的码进行准确地解析,待生成码生成组件550基于作用码、混淆码以及用于自校验的校验码生成待生成码时,可以指定这三者(即,作用码、混淆码以及用于自校验的校验码)的排序位置,例如,排序位置依次为混淆码、作用码以及用于自校验的校验码;或者,排序位置依次为作用码、混淆码以及用于自校验的校验码;或者,排序位置依次为用于自校验的校验码、作用码以及混淆码。在后续对生成的码进行解析时,依据指定的排序位置进行解析校验,从而对生成的码进行准确地解析。
当字符串中的字符两两不同时,从该字符串中提取的第一子字符串和第二子字符串中均不存在相同的字符,以及第一子字符串与第二子字符串相互之间也不存在相同的字符,则基于第一子字符串生成的作用码以及基于第二子字符串生成的混淆码也不存在相同的字符,因而对于生成的码中除去用于自校验的校验码后的任意字符,可以准确地区分是作用码或混淆码。因此,待生成码生成组件550基于作用码、混淆码以及用于自校验的校验码生成待生成码时,不需要指定作用码和混淆码的排序位置,例如混淆码可以打乱随机插入作用码中,仍然可以保证后续对生成的码进行准确地解析。并且,这种生成码的方式能够进一步起到防篡改、防暴力破解的作用,极大提高了生成的码的安全性。需要说明的是,在实际操作中也可以指定作用码和混淆码的排序位置,本发明实施例对此不加以限制。
在本发明一实施例中,作用码生成组件520还适于:当第一子字符串为M位时,乱序第一子字符串,得到M进制数的字符列表;基于M进制数的字符列表,计算任务标识的M进制数。
在本发明一实施例中,作用码生成组件520还适于:确定任务标识的当前进制数;进而基于M进制数的字符列表,将任务标识从当前进制数转换为M进制数。
例如,业务的任务标识为数据表中的自增列,如从十进制数“0”开始自增,步长为1,自增列为0、1、2、3…n,n为正整数。用于生成待生成码的字符串为M+N位的“s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为M(M=26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为N(N=5)位的“a4hxv”。乱序第一子字符串,得到M进制数的字符列表为“ws5gr2pumk7q3c6tfdj9bzney8”,自增列中十进制数“0”的M进制数为“w”作为待生成码中的作用码,十进制数“1”的M进制数为“s”作为待生成码中的作用码,以此类推。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
在本发明一实施例中,自校验码生成组件540还适于:将混淆码打乱随机插入作用码中,生成中间码;计算中间码的校验码;从计算得到的中间码的检验码中取第二指定长度的校验码,作为待生成码中用于自校验的校验码。
在本发明一实施例中,自校验码生成组件540还适于:将混淆码打乱随机插入作用码的任意多个位置,生成中间码。
以上文的例子为例,混淆码生成组件530从第二子字符串“a4hxv”中随机抽取第一指定长度(假设为4)的字符串“ahx4”作为待生成码中的混淆码。自校验码生成组件540将混淆码“ahx4”打乱随机插入作用码“w”中,生成中间码为“a4hxw”。进一步,自校验码生成组件540将混淆码“ahx4”打乱随机插入作用码“w”的任意多个位置,生成中间码为“a4whx”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
在本发明一实施例中,自校验码生成组件540还适于:当字符串为M+N位时,乱序字符串,得到M+N进制数的字符列表;计算中间码的CRC值;基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。
以上文的例子为例,自校验码生成组件540生成的中间码为“a4whx”,自校验码生成组件540计算该中间码的CRC32值为-10822859820(由二进制数转换得到的十进制数)。在计算码的CRC值时,可以有不同的CRC算法,如CRC8、CRC12、CRC16、CRC32等,每个CRC算法表示不同的生成多项式。本例中示意性地计算中间码的CRC32值,本发明实施例对此不加以限制。随后,自校验码生成组件540基于M+N进制数的字符列表,将中间码的CRC32值“-10822859820”转换为M+N进制数“aksdf8dk”,作为中间码的校验码。
在本发明一实施例中,自校验码生成组件540还适于:从计算得到的中间码的检验码的初始位置起,顺序取第二指定长度位,作为待生成码中用于自校验的校验码;或者,从计算得到的中间码的检验码的末尾位置起,逆序取第二指定长度位,作为待生成码中用于自校验的校验码。
在计算得到的中间码的检验码“aksdf8dk”中,自校验码生成组件540从初始位置起,顺序取第二指定长度(假设为3)位“aks”,作为待生成码中用于自校验的校验码。或者,自校验码生成组件540从末尾位置起,逆序取第二指定长度(假设为3)位“8dk”,作为待生成码中用于自校验的校验码。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
在本发明一实施例中,混淆码生成组件530还适于:确定待生成码的长度以及待生成码中的作用码的长度;将待生成码的长度减去待生成码中的作用码的长度与第二指定长度之和,得到的长度值确定为第一指定长度。在实际操作中,待生成码的长度、待生成码中的作用码的长度、待生成码中的混淆码的长度以及待生成码中用于自校验的校验码的长度,这四个长度中确定任意三个,即可得到第四个长度。
在本发明一实施例中,待生成码生成组件550还适于:将用于自校验的校验码附加在中间码的末尾,生成待生成码;或者,将用于自校验的校验码附加在中间码的前端,生成待生成码。
例如,上文自校验码生成组件540生成的中间码为“a4whx”,并且从中间码的检验码“aksdf8dk”中截取的用于自校验的校验码为“aks”或“8dk”。
对于用于自校验的校验码“aks”,待生成码生成组件550将“aks”附加在中间码“a4whx”的末尾,生成待生成码为“a4whxaks”;或者将“aks”附加在中间码“a4whx”的前端,生成待生成码为“aksa4whx”。
对于用于自校验的校验码“8dk”,待生成码生成组件550将“8dk”附加在中间码“a4whx”的末尾,生成待生成码为“a4whx8dk”;或者将“8dk”附加在中间码“a4whx”的前端,生成待生成码为“8dka4whx”。
上文例子列举了自增列中十进制数为“0”时,根据上述方案生成的业务任务的码的情况,对于自增列中其他十进制数,与十进制数为“0”的情况类似,此处不再赘述。
基于上文各个实施例提供的用于实现业务任务的码的校验方法,基于同一发明构思,本发明实施例还提供了一种用于实现业务任务的码的校验装置。图6示出了根据本发明一个实施例的用于实现业务任务的码的校验装置的结构示意图。如图6所示,该装置600至少可以包括待校验码获取组件610、自校验码确定组件620、待计算码确定组件630、待校验字符生成组件640以及校验组件650。
现介绍本发明实施例的用于实现业务任务的码的校验装置600的各组成或器件的功能以及各部分间的连接关系:
待校验码获取组件610,适于获取待校验的码;
自校验码确定组件620,与待校验码获取组件610相耦合,适于获取并解析待校验的码的生成规则,从待校验的码中截取用于自校验的校验码;
待计算码确定组件630,与自校验码确定组件620相耦合,适于从待校验的码中截取用于自校验的校验码后,将剩余的码作为待计算码;
待校验字符生成组件640,与待计算码确定组件630相耦合,适于获取并解析用于自校验的校验码的生成规则,生成待计算码的待校验字符;
校验组件650,与待校验字符生成组件640相耦合,适于比较用于自校验的校验码与待校验字符,根据比较结果确定待校验的码是否通过校验。
在本发明一实施例中,待校验码获取组件610获取的待校验的码,是基于作用码、混淆码以及用于自校验的校验码而生成,其中,用于自校验的校验码是利用作用码和混淆码而生成。并且,作用码是由业务的任务标识转化为的第一子字符串中的字符,混淆码是从第二子字符串中随机抽取的第一指定长度的字符串,第一子字符串从用于生成待校验的码的字符串中提取,第二子字符串从字符串被提取第一子字符串之后的剩余部分提取。
仍以上文为例,获取的待校验的码为“a4whx8dk”,业务的任务标识为数据表中的自增列,如从十进制数“0”开始自增,步长为1,自增列为0、1、2、3…n,n为正整数。用于生成待生成码的字符串为M+N位的“s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为M(M=26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为N(N=5)位的“a4hxv”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
在本发明一实施例中,当待校验的码的生成规则包括将第二指定长度的、用于自校验的校验码附加在作用码和混淆码组合得到的中间码的指定位置时,自校验码确定组件620解析待校验的码的生成规则,确定第二指定长度和指定位置,进而根据指定位置,从待校验的码中截取第二指定长度的字符,作为用于自校验的校验码。这里,第二指定长度为用于自校验的校验码的长度,指定位置可以包括中间码的初始位置、末尾位置或者其他位置。
当指定位置为中间码的初始位置时,自校验码确定组件620从待校验的码的初始位置起,顺序截取第二指定长度的字符。
当指定位置为中间码的末尾位置时,自校验码确定组件620从待校验的码的末尾位置起,逆序截取第二指定长度的字符。
在上文的例子中,待校验码获取组件610获取的待校验的码为“a4whx8dk”,用于自校验的校验码的第二指定长度为3,指定位置为中间码的末尾位置。此时,自校验码确定组件620从待校验的码“a4whx8dk”的末尾位置起,逆序截取第二指定长度为“3”的字符“8dk”,作为用于自校验的校验码。在自校验码确定组件620从待校验的码中截取用于自校验的校验码后,待计算码确定组件630确定剩余的码为“a4whx”作为待计算码。
在本发明一实施例中,用于自校验的校验码的生成规则包括将混淆码打乱随机插入作用码中,生成中间码,进而计算中间码的校验码,随后从中间码的检验码中取第二指定长度的校验码,作为用于自校验的校验码。此时,待校验字符生成组件640还适于:解析用于自校验的校验码的生成规则,确定计算中间码的校验码的规则以及从中间码的检验码中取第二指定长度的用于自校验的校验码的规则;根据计算中间码的校验码的规则,计算待计算码的校验码;根据从中间码的检验码中取第二指定长度的用于自校验的校验码的规则,从待计算码的校验码中截取第二指定长度的待校验字符。
在本发明一实施例中,计算中间码的校验码的规则包括乱序字符串,得到M+N进制数的字符列表,进而计算中间码的CRC值,随后基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。此时,待校验字符生成组件640计算待计算码的CRC值,进而基于M+N进制数的字符列表,将待计算码的CRC值转换为M+N进制数,作为待计算码的校验码。
在上文例子中,待计算码为“a4whx”,该待计算码“a4whx”的CRC32值为“-10822859820”,待校验字符生成组件640将待计算码的CRC32值转换为M+N进制数为“aksdf8dk”,作为待计算码的校验码。
在本发明一实施例中,从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的初始位置起,顺序取第二指定长度位,作为用于自校验的校验码。此时,待校验字符生成组件640从待计算码的校验码的初始位置起,顺序截取第二指定长度位,作为待校验字符。
在本发明一实施例中,从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的末尾位置起,逆序取第二指定长度位,作为用于自校验的校验码。此时,待校验字符生成组件640从待计算码的校验码的末尾位置起,逆序截取第二指定长度位,作为待校验字符。
在上文例子中,从中间码的检验码中取第二指定长度的用于自校验的校验码的规则包括从中间码的检验码的末尾位置起,逆序取第二指定长度位,作为用于自校验的校验码。此时,待校验字符生成组件640从待计算码的校验码“aksdf8dk”的末尾位置起,逆序截取第二指定长度为“3”的字符位,即“8dk”,作为待校验字符。
在本发明一实施例中,校验组件650比较用于自校验的校验码与待校验字符,若比较结果为用于自校验的校验码与待校验字符相同,则确定待校验的码通过校验;反之,若比较结果为用于自校验的校验码与待校验字符不相同,则确定待校验的码未通过校验。在上述例子中,校验组件650比较出用于自校验的校验码“8dk”与待校验字符“8dk”相同,则确定待校验的码通过校验。
在本发明一实施例中,如图7所示,图6展示的校验装置600还可以包括:任务标识确定组件660,与校验组件650相耦合,适于校验组件650在确定待校验的码通过校验之后,从待计算码中删除存在于第二子字符串中的字符,得到待校验的码中的作用码;获取并解析作用码的转化规则,将待校验的码中的作用码转化为任务标识,进而根据任务标识查找相应的业务任务,并进行业务逻辑操作。
在本发明一实施例中,作用码的转化规则包括乱序第一子字符串,得到M进制数的字符列表,进而基于M进制数的字符列表,计算任务标识的M进制数。此时,任务标识确定组件660根据M进制数的字符列表,将待校验的码中的作用码从M进制数转换为任务标识。
在上文例子中,待计算码为“a4whx”,第二子字符串为N(N=5)位的“a4hxv”,从待计算码中删除存在于第二子字符串中的字符(即,混淆码),得到待校验的码中的作用码为“w”。随后,基于M进制数的字符列表,将待校验的码中的作用码“w”从M进制数转化为任务标识“0”。之后,根据任务标识“0”查找相应的业务任务,并进行业务逻辑操作。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例中,将业务的任务标识转换为的第一子字符串中的字符,作为待生成码中的作用码,从而在业务的任务标识不重复的情况下,保证了即将生成的码不重复,解决了现有技术中当生成的码越多时重复的概率越大,进而生成码后还需要进行去重操作,导致生成码的效率较低的问题。并且,本发明实施例生成的码除了包括作用码外,还包括了混淆码以及用于自校验的校验码,从而起到了防篡改、防暴力破解的作用,极大提高了生成的码的安全性。进一步,本发明实施例在解析生成的码得到其中的作用码后,通过作用码能够计算出对应业务的任务标识,从而可以根据业务的任务标识查询到相应的业务任务,进而进行业务逻辑操作。由于生成的码的长度大于业务的任务标识的长度,本发明实施例直接通过业务的任务标识查询相应的业务任务,相比于现有技术中需要使用生成的码本身去做索引查找相应的业务,查询业务的效率更高。并且,生成的码中通常包含字母,字母占用字节比数字多,而业务的任务标识一般是由数字组成,因而业务的任务标识占用字节比生成的码少,因此本发明实施例使用业务的任务标识做索引,相比于现有技术中使用生成的码本身做索引,能够减少内存的占用,节约系统资源。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于实现业务任务的码的生成装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例的一方面,还公开了:A1、一种用于实现业务任务的码的生成方法,包括:
获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码,并利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
A2、根据A1所述的方法,其中,所述第一子字符串为M位,将所述任务标识转换为所述第一子字符串中的字符,包括:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
A3、根据A1-A2任一项所述的方法,其中,基于所述M进制数的字符列表,计算所述任务标识的M进制数,包括:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
A4、根据A1-A3任一项所述的方法,其中,利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码,包括:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
A5、根据A1-A4任一项所述的方法,其中,将所述混淆码打乱随机插入所述作用码中,生成中间码,包括:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
A6、根据A1-A5任一项所述的方法,其中,所述字符串为M+N位,计算所述中间码的校验码,包括:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
A7、根据A1-A6任一项所述的方法,其中,从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码,包括:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
A8、根据A1-A7任一项所述的方法,其中,通过以下步骤确定所述第一指定长度:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
A9、根据A1-A8任一项所述的方法,其中,所述字符串中的字符两两不同。
A10、根据A1-A9任一项所述的方法,其中,基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码,包括:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。
本发明实施例的另一方面,还公开了:B11、一种用于实现业务任务的码的生成装置,包括:
子字符串提取组件,适于获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
作用码生成组件,适于获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
混淆码生成组件,适于从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码;
自校验码生成组件,适于利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
待生成码生成组件,适于基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
B12、根据B11所述的装置,其中,所述第一子字符串为M位,所述作用码生成组件还适于:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
B13、根据B11-B12任一项所述的装置,其中,所述作用码生成组件还适于:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
B14、根据B11-B13任一项所述的装置,其中,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
B15、根据B11-B14任一项所述的装置,其中,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
B16、根据B11-B15任一项所述的装置,其中,所述字符串为M+N位,所述自校验码生成组件还适于:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
B17、根据B11-B16任一项所述的装置,其中,所述自校验码生成组件还适于:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
B18、根据B11-B17任一项所述的装置,其中,所述混淆码生成组件还适于:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
B19、根据B11-B18任一项所述的装置,其中,所述字符串中的字符两两不同。
B20、根据B11-B19任一项所述的装置,其中,所述待生成码生成组件还适于:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。

Claims (20)

1.一种用于实现业务任务的码的生成方法,包括:
获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码,并利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
2.根据权利要求1所述的方法,其中,所述第一子字符串为M位,将所述任务标识转换为所述第一子字符串中的字符,包括:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
3.根据权利要求2所述的方法,其中,基于所述M进制数的字符列表,计算所述任务标识的M进制数,包括:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
4.根据权利要求1-3任一项所述的方法,其中,利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码,包括:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
5.根据权利要求4所述的方法,其中,将所述混淆码打乱随机插入所述作用码中,生成中间码,包括:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
6.根据权利要求4所述的方法,其中,所述字符串为M+N位,计算所述中间码的校验码,包括:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
7.根据权利要求4所述的方法,其中,从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码,包括:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
8.根据权利要求4所述的方法,其中,通过以下步骤确定所述第一指定长度:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
9.根据权利要求1-3、5-8任一项所述的方法,其中,所述字符串中的字符两两不同。
10.根据权利要求4所述的方法,其中,基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码,包括:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。
11.一种用于实现业务任务的码的生成装置,包括:
子字符串提取组件,适于获取用于生成待生成码的字符串,从所述字符串中提取第一子字符串,并从剩余部分提取第二子字符串;
作用码生成组件,适于获取业务的任务标识,将所述任务标识转换为所述第一子字符串中的字符,作为所述待生成码中的作用码;
混淆码生成组件,适于从所述第二子字符串中随机抽取第一指定长度的字符串作为所述待生成码中的混淆码;
自校验码生成组件,适于利用所述作用码和所述混淆码,生成所述待生成码中用于自校验的校验码;
待生成码生成组件,适于基于所述作用码、所述混淆码以及所述用于自校验的校验码,生成所述待生成码。
12.根据权利要求11所述的装置,其中,所述第一子字符串为M位,所述作用码生成组件还适于:
乱序所述第一子字符串,得到M进制数的字符列表;
基于所述M进制数的字符列表,计算所述任务标识的M进制数。
13.根据权利要求12所述的装置,其中,所述作用码生成组件还适于:
确定所述任务标识的当前进制数;
基于所述M进制数的字符列表,将所述任务标识从所述当前进制数转换为M进制数。
14.根据权利要求11-13任一项所述的装置,其中,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码中,生成中间码;
计算所述中间码的校验码;
从计算得到的所述中间码的检验码中取第二指定长度的校验码,作为所述待生成码中用于自校验的校验码。
15.根据权利要求14所述的装置,其中,所述自校验码生成组件还适于:
将所述混淆码打乱随机插入所述作用码的任意多个位置,生成中间码。
16.根据权利要求14所述的装置,其中,所述字符串为M+N位,所述自校验码生成组件还适于:
乱序所述字符串,得到M+N进制数的字符列表;
计算所述中间码的循环校验码CRC值;
基于所述M+N进制数的字符列表,将所述中间码的CRC值转换为M+N进制数,作为所述中间码的校验码。
17.根据权利要求14所述的装置,其中,所述自校验码生成组件还适于:
从计算得到的所述中间码的检验码的初始位置起,顺序取第二指定长度位,作为所述待生成码中用于自校验的校验码;或者,
从计算得到的所述中间码的检验码的末尾位置起,逆序取第二指定长度位,作为所述待生成码中用于自校验的校验码。
18.根据权利要求14所述的装置,其中,所述混淆码生成组件还适于:
确定所述待生成码的长度以及所述待生成码中的作用码的长度;
将所述待生成码的长度减去所述待生成码中的作用码的长度与所述第二指定长度之和,得到的长度值确定为所述第一指定长度。
19.根据权利要求11-13、15-18任一项所述的装置,其中,所述字符串中的字符两两不同。
20.根据权利要求14所述的装置,其中,所述待生成码生成组件还适于:
将所述用于自校验的校验码附加在所述中间码的末尾,生成所述待生成码;或者,
将所述用于自校验的校验码附加在所述中间码的前端,生成所述待生成码。
CN201510624970.3A 2015-09-25 2015-09-25 用于实现业务任务的码的生成方法及装置 Active CN105224415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510624970.3A CN105224415B (zh) 2015-09-25 2015-09-25 用于实现业务任务的码的生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510624970.3A CN105224415B (zh) 2015-09-25 2015-09-25 用于实现业务任务的码的生成方法及装置

Publications (2)

Publication Number Publication Date
CN105224415A CN105224415A (zh) 2016-01-06
CN105224415B true CN105224415B (zh) 2018-01-09

Family

ID=54993405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510624970.3A Active CN105224415B (zh) 2015-09-25 2015-09-25 用于实现业务任务的码的生成方法及装置

Country Status (1)

Country Link
CN (1) CN105224415B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107800819A (zh) * 2017-11-17 2018-03-13 深圳市泉眼网络科技有限公司 一种文件标识的生成方法、装置和服务器
CN110738513B (zh) * 2019-09-11 2022-08-02 完美世界(北京)软件科技发展有限公司 一种用于生成、验证兑换码的方法和装置
CN112333204B (zh) * 2020-11-29 2023-04-07 国网辽宁省电力有限公司电力科学研究院 基于tcp ip协议乱序特征码的5g网络传输保密装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3517385A (en) * 1966-10-31 1970-06-23 Tokyo Shibaura Electric Co Code checking systems
CN101099138A (zh) * 2005-03-04 2008-01-02 国立大学法人东京工业大学 限制了错误字节数的字节内多个斑点字节错误纠正/检测方法和装置
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
CN101369242B (zh) * 2008-09-28 2011-06-15 西北工业大学 计算机内存程序代码和数据的自检方法
US8321777B2 (en) * 2006-12-28 2012-11-27 Samsung Electronics Co., Ltd. Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3517385A (en) * 1966-10-31 1970-06-23 Tokyo Shibaura Electric Co Code checking systems
CN101099138A (zh) * 2005-03-04 2008-01-02 国立大学法人东京工业大学 限制了错误字节数的字节内多个斑点字节错误纠正/检测方法和装置
US8321777B2 (en) * 2006-12-28 2012-11-27 Samsung Electronics Co., Ltd. Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device
CN101178675A (zh) * 2007-12-14 2008-05-14 华为技术有限公司 校验数据的方法和装置
CN101369242B (zh) * 2008-09-28 2011-06-15 西北工业大学 计算机内存程序代码和数据的自检方法

Also Published As

Publication number Publication date
CN105224415A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
Liao et al. Soliaudit: Smart contract vulnerability assessment based on machine learning and fuzz testing
EP2014054B1 (en) Method and apparatus for approximate pattern matching
US20150302197A1 (en) Apparatus and Method for Identifying Similarity Via Dynamic Decimation of Token Sequence N-Grams
CN105224415B (zh) 用于实现业务任务的码的生成方法及装置
CN106682505A (zh) 一种病毒检测方法、终端、服务器及系统
CN108108384B (zh) 一种数据存储方法及装置
CN103685308A (zh) 一种钓鱼网页的检测方法及系统、客户端、服务器
US20190362102A1 (en) Techniques for masking electronic data
CN105260534A (zh) 用于超大规模芯片验证的回归测试用例维护方法及系统
CN105224414B (zh) 用于实现业务任务的码的校验方法及装置
CN105205397A (zh) 恶意程序样本分类方法及装置
CN107945064A (zh) 一种业务订单编号生成方法及装置
CN110427375B (zh) 字段类别的识别方法及装置
CN106709336A (zh) 识别恶意软件的方法和装置
CN104036187A (zh) 计算机病毒类型确定方法及其系统
CN104899009A (zh) 一种安卓应用的识别方法及装置
Briones et al. Graphs, entropy and grid computing: Automatic comparison of malware
CN105760450A (zh) 一种表单文件解析方法及装置
CN105989532A (zh) 数据处理方法及装置
CN104933096B (zh) 数据库的异常键识别方法、装置与数据系统
CN108133229B (zh) 一种安卓apk文件的分类加密方法及系统
CN110287118B (zh) 测试用例的测试数据生成方法及软件测试方法
CN113609020A (zh) 一种测试用例推荐方法及装置
US20170255503A1 (en) Method for controlling error rate of device-specific information and program for controlling error rate of device-specific information
Kokkala et al. Classification of Graeco‐Latin Cubes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220712

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co., Ltd

TR01 Transfer of patent right