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

文档序号:9471252阅读:来源:国知局
这里的第一子字符串和第二子字符串中存在相同的字符“ab”。为了保证后续对生成的码进行准确地解析,待生成码生成组件550基于作用码、混淆码以及用于自校验的校验码生成待生成码时,可以指定这三者(即,作用码、混淆码以及用于自校验的校验码)的排序位置,例如,排序位置依次为混淆码、作用码以及用于自校验的校验码;或者,排序位置依次为作用码、混淆码以及用于自校验的校验码;或者,排序位置依次为用于自校验的校验码、作用码以及混淆码。在后续对生成的码进行解析时,依据指定的排序位置进行解析校验,从而对生成的码进行准确地解析。
[0142]当字符串中的字符两两不同时,从该字符串中提取的第一子字符串和第二子字符串中均不存在相同的字符,以及第一子字符串与第二子字符串相互之间也不存在相同的字符,则基于第一子字符串生成的作用码以及基于第二子字符串生成的混淆码也不存在相同的字符,因而对于生成的码中除去用于自校验的校验码后的任意字符,可以准确地区分是作用码或混淆码。因此,待生成码生成组件550基于作用码、混淆码以及用于自校验的校验码生成待生成码时,不需要指定作用码和混淆码的排序位置,例如混淆码可以打乱随机插入作用码中,仍然可以保证后续对生成的码进行准确地解析。并且,这种生成码的方式能够进一步起到防篡改、防暴力破解的作用,极大提高了生成的码的安全性。需要说明的是,在实际操作中也可以指定作用码和混淆码的排序位置,本发明实施例对此不加以限制。
[0143]在本发明一实施例中,作用码生成组件520还适于:当第一子字符串为M位时,乱序第一子字符串,得到M进制数的字符列表;基于M进制数的字符列表,计算任务标识的M进制数。
[0144]在本发明一实施例中,作用码生成组件520还适于:确定任务标识的当前进制数;进而基于M进制数的字符列表,将任务标识从当前进制数转换为M进制数。
[0145]例如,业务的任务标识为数据表中的自增列,如从十进制数“O”开始自增,步长为1,自增列为0、1、2、3…η,η为正整数。用于生成待生成码的字符串为Μ+Ν 位的 “s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为 M(M = 26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为 N(N = 5)位的 “a4hxv”。乱序第一子字符串,得到M进制数的字符列表为“ws5gr2pumk7q3c6tfdj9bzney8”,自增列中十进制数“O”的M进制数为“w”作为待生成码中的作用码,十进制数“ I”的M进制数为“s”作为待生成码中的作用码,以此类推。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0146]在本发明一实施例中,自校验码生成组件540还适于:将混淆码打乱随机插入作用码中,生成中间码;计算中间码的校验码;从计算得到的中间码的检验码中取第二指定长度的校验码,作为待生成码中用于自校验的校验码。
[0147]在本发明一实施例中,自校验码生成组件540还适于:将混淆码打乱随机插入作用码的任意多个位置,生成中间码。
[0148]以上文的例子为例,混淆码生成组件530从第二子字符串“a4hxv”中随机抽取第一指定长度(假设为4)的字符串“ahx4”作为待生成码中的混淆码。自校验码生成组件540将混淆码“ahx4”打乱随机插入作用码“w”中,生成中间码为“a4hxw”。进一步,自校验码生成组件540将混淆码“ahx4”打乱随机插入作用码“w”的任意多个位置,生成中间码为“a4whx”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0149]在本发明一实施例中,自校验码生成组件540还适于:当字符串为M+N位时,乱序字符串,得到M+N进制数的字符列表;计算中间码的CRC值;基于M+N进制数的字符列表,将中间码的CRC值转换为M+N进制数,作为中间码的校验码。
[0150]以上文的例子为例,自校验码生成组件540生成的中间码为“a4whx”,自校验码生成组件540计算该中间码的CRC32值为-10822859820 (由二进制数转换得到的十进制数)。在计算码的CRC值时,可以有不同的CRC算法,如CRC8、CRC12、CRC16、CRC32等,每个CRC算法表示不同的生成多项式。本例中示意性地计算中间码的CRC32值,本发明实施例对此不加以限制。随后,自校验码生成组件540基于M+N进制数的字符列表,将中间码的CRC32值“-10822859820”转换为M+N进制数“aksdf8dk”,作为中间码的校验码。
[0151]在本发明一实施例中,自校验码生成组件540还适于:从计算得到的中间码的检验码的初始位置起,顺序取第二指定长度位,作为待生成码中用于自校验的校验码;或者,从计算得到的中间码的检验码的末尾位置起,逆序取第二指定长度位,作为待生成码中用于自校验的校验码。
[0152]在计算得到的中间码的检验码“aksdfSdk”中,自校验码生成组件540从初始位置起,顺序取第二指定长度(假设为3)位“aks”,作为待生成码中用于自校验的校验码。或者,自校验码生成组件540从末尾位置起,逆序取第二指定长度(假设为3)位“8dk”,作为待生成码中用于自校验的校验码。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0153]在本发明一实施例中,混淆码生成组件530还适于:确定待生成码的长度以及待生成码中的作用码的长度;将待生成码的长度减去待生成码中的作用码的长度与第二指定长度之和,得到的长度值确定为第一指定长度。在实际操作中,待生成码的长度、待生成码中的作用码的长度、待生成码中的混淆码的长度以及待生成码中用于自校验的校验码的长度,这四个长度中确定任意三个,即可得到第四个长度。
[0154]在本发明一实施例中,待生成码生成组件550还适于:将用于自校验的校验码附加在中间码的末尾,生成待生成码;或者,将用于自校验的校验码附加在中间码的前端,生成待生成码。
[0155]例如,上文自校验码生成组件540生成的中间码为“a4whx”,并且从中间码的检验码“aksdfSdk”中截取的用于自校验的校验码为“aks”或“8dk”。
[0156]对于用于自校验的校验码“aks”,待生成码生成组件550将“aks”附加在中间码“a4whx”的末尾,生成待生成码为“a4whxaks” ;或者将“aks”附加在中间码“a4whx”的前端,生成待生成码为“aksa4whx”。
[0157]对于用于自校验的校验码“8dk”,待生成码生成组件550将“8dk”附加在中间码“a4whx”的末尾,生成待生成码为“a4whx8dk” ;或者将“8dk”附加在中间码“a4whx”的前端,生成待生成码为“8dka4whx”。
[0158]上文例子列举了自增列中十进制数为“O”时,根据上述方案生成的业务任务的码的情况,对于自增列中其他十进制数,与十进制数为“O”的情况类似,此处不再赘述。
[0159]基于上文各个实施例提供的用于实现业务任务的码的校验方法,基于同一发明构思,本发明实施例还提供了一种用于实现业务任务的码的校验装置。图6示出了根据本发明一个实施例的用于实现业务任务的码的校验装置的结构示意图。如图6所示,该装置600至少可以包括待校验码获取组件610、自校验码确定组件620、待计算码确定组件630、待校验字符生成组件640以及校验组件650。
[0160]现介绍本发明实施例的用于实现业务任务的码的校验装置600的各组成或器件的功能以及各部分间的连接关系:
[0161]待校验码获取组件610,适于获取待校验的码;
[0162]自校验码确定组件620,与待校验码获取组件610相耦合,适于获取并解析待校验的码的生成规则,从待校验的码中截取用于自校验的校验码;
[0163]待计算码确定组件630,与自校验码确定组件620相耦合,适于从待校验的码中截取用于自校验的校验码后,将剩余的码作为待计算码;
[0164]待校验字符生成组件640,与待计算码确定组件630相耦合,适于获取并解析用于自校验的校验码的生成规则,生成待计算码的待校验字符;
[0165]校验组件650,与待校验字符生成组件640相耦合,适于比较用于自校验的校验码与待校验字符,根据比较结果确定待校验的码是否通过校验。
[0166]在本发明一实施例中,待校验码获取组件610获取的待校验的码,是基于作用码、混淆码以及用于自校验的校验码而生成,其中,用于自校验的校验码是利用作用码和混淆码而生成。并且,作用码是由业务的任务标识转化为的第一子字符串中的字符,混淆码是从第二子字符串中随机抽取的第一指定长度的字符串,第一子字符串从用于生成待校验的码的字符串中提取,第二子字符串从字符串被提取第一子字符串之后的剩余部分提取。
[0167]仍以上文为例,获取的待校验的码为“a4whx8dk”,业务的任务标识为数据表中的自增列,如从十进制数“O”开始自增,步长为1,自增列为0、1、2、3…n,n为正整数。用于生成待生成码的字符串为M+N位的“s25a9rwc78pzdgt6jbu4eh3fnqyxmkv”,第一子字符串为M(M = 26)位的“s259rwc78pzdgt6jbue3fnqymk”,第二子字符串为 N(N = 5)位的“a4hxv”。需要说明的是,此处列举仅是示意性的,本发明实施例对此不加以限制。
[0168]在本发明一实施例中,当待校验的码的生成规则包括将第二指定长度的、用于自校验的校验码附加在作用码和混淆码组合得到的中间码的指定位置时,自校验码确定组件620解析待校验的码的生成规则,确定第二指定长度和指定位置,进而根据指定位置,从待校验的码中截取第二指定长度的字符,作为用于自校验的校验码。这里,第二指定长度为用于自校验的校验码的长度,指定位置可以包括中间码的初始位置、末尾位置或者其他位置。
[0169]当指定位置为中间码的初始位置时,自校验码确定组件620从待校验的码的初始位置起,顺序截取第二指定长度的字符。
[0170]当指定位置为中间码的末尾位置时,自校验码确定组件620从待校验的码的末尾位置起,逆序截取第二指定长度的字符。
[0171]在上文的例子中,待校验码获取组件610获取的待校验的码为“a4whx8dk”,用于自校验的校验码的第二指定长度为3,指定位置为中间码的末尾位置。此时,自校验码确定组件620从待校验的码“a4whx8dk”的末尾位置起,逆序截取第二指定长度为“3”的字符“8dk”,作为用于自校验的校验码。在自校验码确定组件620
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1