一种校验码生成方法及装置的制造方法

文档序号:10612579阅读:180来源:国知局
一种校验码生成方法及装置的制造方法
【专利摘要】本发明实施例涉及校验码计算技术领域,尤其涉及一种校验码生成方法及装置。所述校验码生成方法包括:设立源校验码候选值数组;根据设定时间产生至少两个第一随机数,对所述源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换,得到目标校验码候选值数组;接收分发校验码请求,产生第二随机数,从所述目标校验码候选值数组中所述第二随机数对应位置的字符开始截取所述分发校验码请求所请求位数的校验码。本发明实施例可以确保校验码的随机性,并可以大大减少校验码分发系统的计算量,提高校验码分发系统的工作效率。
【专利说明】
一种校验码生成方法及装置
技术领域
[0001 ]本发明涉及校验码计算技术领域,尤其涉及一种校验码生成方法及装置。
【背景技术】
[0002]现在的互联网系统通常需要使用校验码。最常用的是手机校验码。例如:使用银行卡在网上支付时,会需要输入6位数字的手机校验码;用户注册某一客户端时,要验证手机,需要输入验证是否是本人手机的校验码;通过输入校验码可以大大提高互联网系统的网络安全性。
[0003]目前普遍采用的校验码生成方式为:比如在一个大型的校验码分发系统中,要生成一个六位的校验码,则设立一个校验码候选值数组,每次产生一个随机数,作为校验码候选值的下标。要产生六位的校验码就需要计算6个随机数,作为校验码候选值的下标,然后再将6个随机数进行拼接,最终生成一个六位校验码。而如果每分钟需要生成1000个6位校验码,校验码分发系统就需要做6000次的随机数计算,每小时就是360000次的计算。因此,现有的校验码生成方式存在的缺点在于:校验码分发系统计算量太大,且计算效率不高。

【发明内容】

[0004]本发明提供了一种校验码生成方法及装置,旨在解决现有的校验码生成方式存在的校验码分发系统计算量大,且计算效率不高的技术问题。
[0005]为了解决以上提出的问题,本发明采用的技术方案为:
[0006]一种校验码生成方法,包括:
[0007]设立源校验码候选值数组;
[0008]根据设定时间产生至少两个第一随机数,对所述源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换,得到目标校验码候选值数组;
[0009]接收分发校验码请求,产生第二随机数,从所述目标校验码候选值数组中所述第二随机数对应位置的字符开始截取所述分发校验码请求所请求位数的校验码。
[0010]本发明实施例采取的技术方案还包括:所述对源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换的交换方式为:
[0011]根据设定时间产生至少两个第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据所述至少两个第一随机数选择源校验码候选值数组中对应位置上的至少两个字符,并将选择的至少两个字符进行相邻位置的两两位置交换,得到目标校验码候选值数组。
[0012]本发明实施例采取的技术方案还包括:所述从目标校验码候选值数组中所述第二随机数对应位置上的字符开始截取与所述分发校验码请求对应位数的校验码具体为:
[0013]判断所述分发校验码请求的校验码位数,产生第二随机数,从所述目标校验码候选值数组中第二随机数对应位置的字符开始顺序截取与所述分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;所述校验码位数为至少两位;所述第二随机数小于所述目标校验码候选值数组中的字符总数与所述校验码位数的差。
[0014]本发明实施例采取的技术方案还包括:所述截取分发校验码请求对应位数的校验码后还包括:产生至少两个第三随机数,将所述初始校验码中所述至少两个第三随机数对应位置上的字符进行位置交换,得到最终的校验码,并向客户端分发最终校验码;所述至少两个第三随机数分别小于或等于所述校验码位数。
[0015]本发明实施例采取的技术方案还包括:所述产生的第一随机数和第三随机数还包括:当所述至少两个第一随机数或至少两个第三随机数的单数位的随机数与相邻的双数位随机数一样时,为所述至少两个第一随机数或至少两个第三随机数的双数位随机数的值加I,或为所述至少两个第一随机数或至少两个第三随机数的单数位随机数的值减I。
[0016]本发明实施例采取的另一技术方案为:一种校验码生成装置,包括数组组成模块、第一顺序交换模块和校验码截取模块;
[0017]所述数组组成模块用于设立源校验码候选值数组;
[0018]所述第一顺序交换模块用于根据设定时间产生至少两个第一随机数,对所述源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换,得到目标校验码候选值数组;
[0019]所述校验码截取模块用于接收分发校验码请求,产生第二随机数,从所述目标校验码候选值数组中所述第二随机数对应位置的字符开始截取所述分发校验码请求所请求位数的校验码。
[0020]本发明实施例采取的技术方案还包括:所述第一顺序交换模块对源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换的交换方式为:
[0021]产生至少两个第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据所述至少两个第一随机数选择源校验码候选值数组中对应位置上的至少两个字符,并将选择的至少两个字符进行相邻位置的两两位置交换,得到目标校验码候选值数组。
[0022]本发明实施例采取的技术方案还包括:所述校验码截取模块从目标校验码候选值数组中所述第二随机数对应位置上的字符开始截取与所述分发校验码请求对应位数的校验码具体为:
[0023]判断所述分发校验码请求的校验码位数,产生第二随机数,从所述目标校验码候选值数组中第二随机数对应位置的字符开始顺序截取与所述分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;所述校验码位数为至少两位;所述第二随机数小于所述目标校验码候选值数组中的字符总数与所述校验码位数的差。
[0024]本发明实施例采取的技术方案还包括:还包括第二顺序交换模块和校验码分发模块;所述第二顺序交换模块用于在校验码截取模块截取分发校验码请求对应位数的校验后,产生至少两个第三随机数,将所述初始校验码中所述至少两个第三随机数对应位置上的字符进行位置交换,得到最终的校验码,并通过校验码分发模块向客户端分发最终校验码;所述至少两个第三随机数分别小于或等于所述校验码位数。
[0025]本发明实施例采取的技术方案还包括:所述第一顺序交换模块及第二顺序交换模块产生的第一随机数和第三随机数还包括:当所述至少两个第一随机数或至少两个第三随机数的单数位的随机数与相邻的双数位随机数一样时,为所述至少两个第一随机数或至少两个第三随机数的双数位随机数的值加I,或为所述至少两个第一随机数或至少两个第三随机数的单数位随机数的值减I。
[0026]与现有技术相比,本发明实施例的有益效果在于:本发明实施例的校验码生成方法及装置通过定时生成一定数量的第一随机数,根据第一随机数对源校验码候选值数组中的字符顺序进行调整,使得源校验码候选值数组中每个时间段内的字符排列顺序都不一样;在接收到分发校验码请求后,产生第二随机数,根据第二随机数截取初始校验码,并在产生初始校验码后产生第三随机数,通过第三随机数对初始校验码的顺序进行调整,得到最终校验码,从而确保校验码的随机性。相对于现有技术,本发明实施例可以大大减少校验码分发系统的计算量,提高校验码分发系统的工作效率。
【附图说明】
[0027]图1为本发明实施例的校验码生成方法的流程图;
[0028]图2是本发明实施例的源校验码候选值数组的初始排列顺序图;
[0029]图3为本发明实施例的校验码生成装置的结构示意图。
【具体实施方式】
[0030]为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
[0031]除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
[0032]请参阅图1,是本发明实施例的校验码生成方法的流程图。本发明实施例的校验码生成方法包括以下步骤:
[0033]步骤100:通过一定数量的数字或字母等字符设立源校验码候选值数组;
[0034]在步骤100中,为了便于说明,本发明实施例以0-9、a-z、A_Z的62个字符设立源校验码候选值数组为例进行具体说明,在本发明其他实施例中,源校验码候选值数组还可以有其他字符或符合组成,源校验码候选值数组的字符数量可根据需求进行设定。具体如图2所示,是本发明实施例的源校验码候选值数组的初始排列顺序图。
[0035]步骤200:在一定时间内,产生至少两个第一随机数,选择源校验码候选值数组中第一随机数对应位置上的字符,并交换选择字符的排列顺序,得到目标校验码候选值数组;
[0036]在步骤200中,本发明实施例以每个小时交换源校验码候选值数组中10个字符的排列顺序为例,以保证校验码产生的随机性。在本发明其他实施例中,具体交换时间和交换的字符数量还可以根据需求进行设定。具体地,交换源校验码候选值数组中第一随机数对应位置上的字符的排列顺序的交换方式为:产生10个62以内的第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据这10个第一随机数选择源校验码候选值数组中对应位置上的10个字符,并将选择的10个字符进行相邻位置的两两位置交换,从而使得源校验码候选值数组中每个小时的字符排列顺序都不一样。例如,校验码生成装置产生的10个62以内的第一随机数分别为:10、15、17、50、51、52、57、1、9和60,则在源校验码候选值数组中选择1、15、17、50、51、52、57、1、9和60对应位置上的1个字符,并分别将10和15、17和50、51和52、57和1、9和60位置上的字符进行两两交换,从而得到目标校验码候选值数组。
[0037]产生的第一随机数顺序需满足:单数位的随机数不能和相邻的双数位随机数一样,如果一样,就为第一随机数的双数位随机数的值加I或为单数位随机数的值减I。例如,第一随机数的第一位随机数产生的是6,第二位随机数产生的也是6,由于源校验码候选值数组中的第6个字符不能和自己交换位置,所以第二位随机数要加I变为7,即源校验码候选值数组中的第6个字符和第7个字符交换位置。而如果第一位随机数产生的是62,第二位随机数产生的也是62,此时如果为第二位随机数的值加I变为63,源校验码候选值数组中不存在63对应位置的字符,因此,需要为第一位随机数的值减I变为61,即将源校验码候选值数组中第61个字符和第62个字符进行位置交换。
[0038]步骤300:接收客户端的分发校验码请求,判断分发校验码请求所请求的校验码位数,产生一个第二随机数,从该第二随机数对应的字符位置开始顺序截取目标校验码候选值数组中与分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;
[0039]在步骤300中,本发明实施例以截取6位校验码为例,目标校验码候选值数组中共有62个字符,目标校验码候选值数组的下标是O到61。但是从56开始后面截取的一段字符不足6位,因此需要产生一个O到55之间的第二随机数,从这个第二随机数对应排列位置上的字符开始顺序截取6个字符作为初始校验码。在本发明其他实施例中,截取的初始校验码还可以为8位或10位等,如果截取的初始校验码为8位,则校验码生成装置产生的第二随机数为O到53之间,即,该第二随机数小于目标校验码候选值数组中的字符总数与校验码位数的差。
[0040]步骤400:产生至少两位不相同的6以内的第三随机数,将初始校验码中该第三随机数对应位置上的至少两个字符进行位置交换,从而得到最终的6位校验码。
[0041]在步骤400中,产生的至少两位第三随机数分别代表初始校验码中至少两个字符的排列位置,例如,产生的至少两位第三随机数分别为4和6,则将初始校验码中的第4个字符和第6个字符进行位置交换;如果产生的至少两位第三随机数相同,则为第三随机数的第二位随机数的值加I或为第一位随机数的值减I。在本发明其他实施例中,如果截取的初始校验码为8位或1位,步骤400中产生的第三随机数还可以4位或6位等。
[0042]步骤500:向客户端分发最终校验码。
[0043]本发明实施例的校验码生成方法通过定时生成一定数量的第一随机数,根据第一随机数对源校验码候选值数组中的字符顺序进行调整,使得源校验码候选值数组中每个时间段内的字符排列顺序都不一样;在接收到分发校验码请求后,产生第二随机数,根据第二随机数截取初始校验码,并在产生初始校验码后产生第三随机数,通过第三随机数对初始校验码的顺序进行调整,得到最终校验码,从而确保校验码的随机性。以产生一组6位数的校验码为例,现有技术中,每产生一组六位数的校验码都需要生成六位随机数,而本发明实施例去掉定时产生的第一随机数(第一随机数不需要每次分发校验码都生成)外,只需要产生一位第二随机数和两位第三随机数,相对于现有技术,本发明实施例产生的随机数数量大约减少一半,因此可大大提高校验码分发效率。
[0044]请参阅图3,是本发明实施例的校验码生成装置的结构示意图。本发明实施例的校验码生成装置包括数组组成模块1、第一顺序交换模块2、校验码截取模块3、第二顺序交换模块4和校验码分发模块5 ;
[0045]数组组成模块I用于通过一定数量的数字或字母等字符设立源校验码候选值数组;其中,本发明实施例以0-9、a-z、A-Z的62个字符为例,在本发明其他实施例中,源校验码候选值数组还可以有其他字符或符合组成,源校验码候选值数组的字符数量可根据需求进行设定。
[0046]第一顺序交换模块2用于在一定时间内产生至少两个第一随机数,选择源校验码候选值数组中第一随机数对应位置上的字符,并交换选择字符的排列顺序,得到目标校验码候选值数组;其中,本发明实施例以每个小时交换源校验码候选值数组中10个字符的排列顺序为例,以保证校验码产生的随机性。在本发明其他实施例中,具体交换时间和交换的字符数量还可以根据需求进行设定。具体地,第一顺序交换模块2交换源校验码候选值数组中第一随机数对应位置上的字符的排列顺序的交换方式为:第一顺序交换模块2产生10个62以内的第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据这10个第一随机数选择源校验码候选值数组中对应位置上的10个字符,并将选择的10个字符进行相邻位置的两两位置交换,从而使得源校验码候选值数组中每个小时的字符排列顺序都不一样。例如,产生的10个62以内的第一随机数分别为:10、15、17、50、51、52、57、1、9和60,则在源校验码候选值数组中选择10、15、17、50、51、52、57、1、9和60对应位置上的10个字符,并分别将10和15、17和50、51和52、57和1、9和60位置上的字符进行两两交换,从而得到目标校验码候选值数组。
[0047]第一顺序交换模块2产生的第一随机数顺序需满足:单数位的随机数不能和相邻的双数位随机数一样,如果一样,就为第一随机数的双数位随机数的值加I或为单数位随机数的值减I。例如,第一随机数的第一位随机数产生的是6,第二位随机数产生的也是6,由于源校验码候选值数组中的第6个字符不能和自己交换位置,所以第二位随机数要加I变为7,即源校验码候选值数组中的第6个字符和第7个字符交换位置。而如果第一位随机数产生的是62,第二位随机数产生的也是62,此时如果为第二位随机数的值加I变为63,源校验码候选值数组中不存在63对应位置的字符,因此,需要为第一位随机数的值减I变为61,即将源校验码候选值数组中第61个字符和第62个字符进行位置交换。
[0048]校验码截取模块3用于在接收到客户端的分发校验码请求时,判断分发校验码请求所请求的校验码位数,产生一个第二随机数,从该第二随机数对应的字符位置开始顺序截取目标校验码候选值数组中与分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;其中,本发明实施例以截取6位校验码为例,目标校验码候选值数组中共有62个字符,目标校验码候选值数组的下标是O到61。但是从56开始后面截取的一段字符不足6位,因此需要产生一个O到55之间的第二随机数,从这个第二随机数对应排列位置上的字符开始顺序截取6个字符作为初始校验码。在本发明其他实施例中,校验码截取模块3截取的初始校验码还可以为8位或10位等,如果截取的初始校验码为8位,则校验码截取模块3产生的第二随机数为O到53之间,S卩,该第二随机数小于第二校验码候选值数组中的字符总数与校验码位数的差。
[0049]第二顺序交换模块4用于在截取初始校验码后,产生至少两位不相同的6以内的第三随机数,将初始校验码中该第三随机数将初始校验码对应位置上的至少两个字符进行位置交换,从而得到最终的6位校验码;其中,产生的至少两位第三随机数分别代表初始校验码中至少两个字符的排列位置,例如,产生的至少两位第三随机数分别为4和6,则将初始校验码中的第4个字符和第6个字符进行位置交换;如果产生的至少两位第三随机数相同,则为第三随机数的第二位随机数的值加I或为第一位随机数的值减I。在本发明其他实施例中,如果截取的初始校验码为8位或10位,第二顺序交换模块4产生的第三随机数还可以4位或6位等。
[0050]校验码分发模块5用于向客户端分发最终校验码。
[0051]本发明实施例的校验码生成方法及装置通过定时生成一定数量的第一随机数,根据第一随机数对源校验码候选值数组中的字符顺序进行调整,使得源校验码候选值数组中每个时间段内的字符排列顺序都不一样;在接收到分发校验码请求后,产生第二随机数,根据第二随机数截取初始校验码,并在产生初始校验码后产生第三随机数,通过第三随机数对初始校验码的顺序进行调整,得到最终校验码,从而确保校验码的随机性。相对于现有技术,本发明实施例可以大大减少校验码分发系统的计算量,提高校验码分发系统的工作效率。
[0052]上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
【主权项】
1.一种校验码生成方法,其特征在于,包括: 设立源校验码候选值数组; 根据设定时间产生至少两个第一随机数,对所述源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换,得到目标校验码候选值数组; 接收分发校验码请求,产生第二随机数,从所述目标校验码候选值数组中所述第二随机数对应位置的字符开始截取所述分发校验码请求所请求位数的校验码。2.根据权利要求1所述的校验码生成方法,其特征在于:所述对源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换的交换方式为: 根据设定时间产生至少两个第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据所述至少两个第一随机数选择源校验码候选值数组中对应位置上的至少两个字符,并将选择的至少两个字符进行相邻位置的两两位置交换,得到目标校验码候选值数组。3.根据权利要求2所述的校验码生成方法,其特征在于,所述从目标校验码候选值数组中所述第二随机数对应位置上的字符开始截取与所述分发校验码请求对应位数的校验码具体为: 判断所述分发校验码请求对应的校验码位数,产生第二随机数,从所述目标校验码候选值数组中第二随机数对应位置的字符开始顺序截取与所述分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;所述校验码位数为至少两位;所述第二随机数小于所述目标校验码候选值数组中的字符总数与所述校验码位数的差。4.根据权利要求3所述的校验码生成方法,其特征在于,所述截取分发校验码请求对应位数的校验码后还包括:产生至少两个第三随机数,将所述初始校验码中所述至少两个第三随机数对应位置上的字符进行位置交换,得到最终的校验码,并向客户端分发最终校验码;所述至少两个第三随机数分别小于或等于所述校验码位数。5.根据权利要求4所述的校验码生成方法,其特征在于,所述产生的第一随机数和第三随机数还包括:当所述至少两个第一随机数或至少两个第三随机数的单数位的随机数与相邻的双数位随机数一样时,为所述至少两个第一随机数或至少两个第三随机数的双数位随机数的值加I,或为所述至少两个第一随机数或至少两个第三随机数的单数位随机数的值减I O6.一种校验码生成装置,其特征在于,包括数组组成模块、第一顺序交换模块和校验码截取模块; 所述数组组成模块用于设立源校验码候选值数组; 所述第一顺序交换模块用于根据设定时间产生至少两个第一随机数,对所述源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换,得到目标校验码候选值数组; 所述校验码截取模块用于接收分发校验码请求,产生第二随机数,从所述目标校验码候选值数组中所述第二随机数对应位置的字符开始截取所述分发校验码请求所请求位数的校验码。7.根据权利要求6所述的校验码生成装置,其特征在于,所述第一顺序交换模块对源校验码候选值数组中所述至少两个第一随机数对应位置上的字符进行位置交换的交换方式为: 产生至少两个第一随机数,每一个第一随机数代表源校验码候选值数组中相应字符的排列位置,根据所述至少两个第一随机数选择源校验码候选值数组中对应位置上的至少两个字符,并将选择的至少两个字符进行相邻位置的两两位置交换,得到目标校验码候选值数组。8.根据权利要求7所述的校验码生成装置,其特征在于,所述校验码截取模块从目标校验码候选值数组中所述第二随机数对应位置上的字符开始截取与所述分发校验码请求对应位数的校验码具体为: 判断所述分发校验码请求的校验码位数,产生第二随机数,从所述目标校验码候选值数组中第二随机数对应位置的字符开始顺序截取与所述分发校验码请求的校验码位数相对应的一段字符,作为初始校验码;所述校验码位数为至少两位;所述第二随机数小于所述目标校验码候选值数组中的字符总数与所述校验码位数的差。9.根据权利要求8所述的校验码生成装置,其特征在于,还包括第二顺序交换模块和校验码分发模块;所述第二顺序交换模块用于在校验码截取模块截取分发校验码请求对应位数的校验后,产生至少两个第三随机数,将所述初始校验码中所述至少两个第三随机数对应位置上的字符进行位置交换,得到最终的校验码,并通过校验码分发模块向客户端分发最终校验码;所述至少两个第三随机数分别小于或等于所述校验码位数。10.根据权利要求9所述的校验码生成装置,其特征在于,所述第一顺序交换模块及第二顺序交换模块产生的第一随机数和第三随机数还包括:当所述至少两个第一随机数或至少两个第三随机数的单数位的随机数与相邻的双数位随机数一样时,为所述至少两个第一随机数或至少两个第三随机数的双数位随机数的值加I,或为所述至少两个第一随机数或至少两个第三随机数的单数位随机数的值减I。
【文档编号】G06F7/58GK105975247SQ201610262525
【公开日】2016年9月28日
【申请日】2016年4月25日
【发明人】谢晓静
【申请人】乐视控股(北京)有限公司, 乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1