券号生成方法、服务器和服务器集群技术

技术编号:11190484 阅读:104 留言:0更新日期:2015-03-25 19:10
本发明专利技术公开了一种券号生成方法、服务器和服务器集群,该券号生成方法用于生成M位券号,范围在a与b之间;初始化备选券号缓冲区的步骤:S11、取p;S12、取R;S13、判断该备选券号缓冲区的备选券号是否为N个,若否,执行S14,若是,初始化结束;S14、根据公式R’=[(R-a+p)mod(b-a+1)]+a生成R’;S15、将最新生成的R’存入该备选券号缓冲区,并将最新生成的R’赋值给R,返回S13;在初始化结束后选取备选券号作为实际券号输出,并从该备选券号缓冲区移除。本发明专利技术弥补了现有的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的不足,具有安全且高效的优点。

【技术实现步骤摘要】
券号生成方法、服务器和服务器集群
本专利技术涉及一种券号生成方法、服务器和服务器集群。
技术介绍
目前各大互联网电商平台都会推出电子优惠券或代金券,用户通过在电商平台上输入电子优惠券或代金券从而获得相应的优惠。这些电子优惠券或代金券的券号通常是由一个数字序列组成,现有的券号生成方法主要有以下几种: 1、顺序券号法:按顺序或一定的规律生成券号,如第一张券的券号为54584,第二张券的券号为54585,第三张券的券号为54586,这种方法生成的券号存在明显的规律,用户很容易通过一张券的券号推测出其它券的券号,这样会给电商平台带来很大的损失; 2、随机索引排重法:通过随机的排列组合生成券号,并在数据库建立庞大的已发券号索引用于记录已经发行过的券号,在下一次发行券时,先在数据库中进行查重,只将没有发行过的券号发行出去,这种方法由于券号是完全随机的,所以用户不容易猜出,电商平台相对比较安全,但是随着已发行过的券号数量越来越多,索引查重也变得越来越低效,从而影响券号生成的效率; 3、局部随机法:在按照顺序或一定的规律生成券号后,在将生成的券号中的一部分数字随机排列,如对11位券号的后四位进行随机,生成的券号如:12345670212,12345672901,12345678921等。这种方法由于随机的范围较小,且范围内的券可使用的概率很大,所以也存在较大的安全风险。如果扩大随机位数,比如扩大到8位,那么将占用服务器大量内存,且效率也十分低下。 由此看来,现有的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的问题
技术实现思路
本专利技术要解决的技术问题是现有技术中的券号生成方法普遍存在安全风险大、生成效率低以及容易给电商平台造成严重损失的缺陷,提供一种安全且高效的券号生成方法、服务器和服务器集群。 本专利技术是通过以下技术方案解决上述技术问题的: 本专利技术提供一种券号生成方法,其特点是,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该券号生成方法包括初始化一备选券号缓冲区的步骤,该备选券号缓冲区用于存储N个备选券号,N为正整数; 初始化该备选券号缓冲区的步骤包括: Sn、取p,p为与b-a+Ι互质的数; S12、取R,R的取值范围在a与b之间; S13、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行S14,若是,初始化结束; S14、根据公式 R,= [ (R-a+p)mod(b_a+l) ]+a 生成 R,; S15、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回S13 ; 该券号生成方法还包括:在初始化结束之后执行S21:在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。 其中,具有M位数字是指由M个数字组成的数字序列,如0329就属于具有4位数字的券号,003属于具有3位数字的券号;b_a+l表示的是在a与b之间可以生成的券号的总数量;S12中的R也可以作为备选券号存入该备用券号缓冲区。本技术方案将双射函数理论与实际应用相结合,生成的备选券号充分的满足随机性,即使用户获知一张实际券号也很难推测出其它的实际券号,具有很高的安全性,大大降低了电商平台因券号被破解所造成损失的风险。 较佳的,该券号生成方法还包括在将随机选取的该备选券号从该备选券号缓冲区移除之后执行以下步骤: S22、根据公式R’ = [(R-a+p)mod(b_a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。 较佳的,每次的R均存于一数据库中,该券号生成方法还包括:在初始化结束之后执行S31:在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备用券号缓冲区和该待输出券号缓冲区均设于服务器中; 该券号生成方法还包括:将S21替换为以下步骤: S211、判断该待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,执行 §212, 若否,执行S213 ; S212、在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后返回§211 ; S213、在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。 其中,Q小于或等于该待输出券号缓冲区能够存储的待输出券号的最大量,优选地Q可以远小于该待输出券号缓冲区能够存储的待输出券号的最大量。 本技术方案通过待输出券号缓存区的设置将存储备选券号和输出实际券号分配至不同的缓冲区,有助于减少数据库的访问次数,大大降低了数据库异常的概率,提高了执行效率,本技术方案尤其适用于在服务器集群上实现。 较佳的,S12为在a与b之间随机取R。 较佳的,a的范围为O至1t, t为小于M且大于或等于O的整数,b的范围为1s1-1Ot至10M。对于M较大的情况,可以通过本技术方案适当地缩小a和b的范围,如M= 11,t可以为5。 较佳的,P还在10M_B至b之间,B为N的数量级的指数。 本专利技术还提供一种服务器,其特点是,该服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该服务器包括一用于初始化一备选券号缓冲区的初始化单元,该备选券号缓冲区用于存储N个备选券号,N为正整数; 该初始化单兀包括一取P模块、一取R模块、一第一判断模块、一生成模块和一存入模块; 该取P模块用于取P, P为与b-a+Ι互质的数,然后调用该取R模块; 该取R模块用于取R,R的取值范围在a与b之间,然后调用该第一判断模块; 该第一判断模块用于判断该备选券号缓冲区存储的备选券号是否为N个,若否,调用该生成模块,若是,该初始化单元调用结束; 该生成模块用于根据公式R’ = [ (R-a+p) mod (b_a+l) ] +a生成R’,然后调用该存入模块; 该存入模块用于将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后调用该第一判断模块; 该服务器还包括一输出单元; 该输出单元用于在该初始化单元调用结束之后,在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。 较佳的,该服务器还包括一备选券号缓冲区补充模块,该备选券号缓冲区补充模块用于在将随机选取的该备选券号从该备选券号缓冲区移除之后,根据公式R’ =[(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。 较佳的,每次的R均存于一数据库中,该服务器还包括:一待输出券号缓冲区补充模块,该待输出券号缓冲区补充模块用于在初始化结束之后,在该备选券号缓冲区中随机选取多个备选券号作为待输本文档来自技高网
...
券号生成方法、服务器和服务器集群

【技术保护点】
一种券号生成方法,其特征在于,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于0的整数,b为大于a且小于10M的整数;该券号生成方法包括初始化一备选券号缓冲区的步骤,该备选券号缓冲区用于存储N个备选券号,N为正整数;初始化该备选券号缓冲区的步骤包括:S11、取p,p为与b‑a+1互质的数;S12、取R,R的取值范围在a与b之间;S13、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行S14,若是,初始化结束;S14、根据公式R’=[(R‑a+p)mod(b‑a+1)]+a生成R’;S15、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回S13;该券号生成方法还包括:在初始化结束之后执行S21:在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。

【技术特征摘要】
1.一种券号生成方法,其特征在于,该券号生成方法用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该券号生成方法包括初始化一备选券号缓冲区的步骤,该备选券号缓冲区用于存储N个备选券号,N为正整数; 初始化该备选券号缓冲区的步骤包括: Sn、取P,P为与b-a+Ι互质的数; 512、取R,R的取值范围在a与b之间; 513、判断该备选券号缓冲区存储的备选券号是否为N个,若否,执行S14,若是,初始化结束;514、根据公式R’ = [ (R-a+p)mod(b_a+l) ]+a 生成 R’ ; 515、将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R,然后返回S13 ; 该券号生成方法还包括:在初始化结束之后执行S21:在该备选券号缓冲区中随机选取一个备选券号作为实际券号输出,并将随机选取的该备选券号从该备选券号缓冲区移除。2.如权利要求1所述的券号生成方法,其特征在于,该券号生成方法还包括在将随机选取的该备选券号从该备选券号缓冲区移除之后执行以下步骤: S22、根据公式R’ = [(R-a+p)mod(b-a+l)]+a生成R’,将最新生成的R’作为备选券号存入该备选券号缓冲区,并将最新生成的R’赋值给R。3.如权利要求1或2所述的券号生成方法,其特征在于,每次的R均存于一数据库中,该券号生成方法还包括:在初始化结束之后执行S31:在该备选券号缓冲区中随机选取多个备选券号作为待输出券号存入一待输出券号缓冲区,并将随机选取的该备选券号从该备选券号缓冲区移除,该备选券号缓冲区和该待输出券号缓冲区均设于服务器中; 该券号生成方法还包括:将S21替换为以下步骤: 5211、判断该待输出券号缓冲区存储的待输出券号是否少于Q个,Q为正整数,若是,执行 §212, 若否,执行S213 ; 5212、在该备选券号缓冲区中随机选取至少一个备选券号作为待输出券号存入该待输出券号缓冲区,并将随机选取的该些备选券号从该备选券号缓冲区移除,然后返回S211 ; 5213、在该待输出券号缓冲区中随机选取一个待输出券号作为实际券号输出,并将随机选取的该待输出券号从该待输出券号缓冲区移除。4.如权利要求1至3中任意一项所述的券号生成方法,其特征在于,S12为在a与b之间随机取R。5.如权利要求1所述的券号生成方法,其特征在于,a的范围为O至1St为小于M且大于或等于O的整数,b的范围为Kf-1Ot至10M。6.如权利要求1所述的券号生成方法,其特征在于,P还在10M_B至b之间,B为N的数量级的指数。7.一种服务器,其特征在于,该服务器用于生成一具有M位数字的券号,M为正整数,该券号的范围在a与b之间,a为大于或等于O的整数,b为大于a且小于1m的整数; 该服务器包括一用于初始化一备选券号缓冲区的初始化单元,该...

【专利技术属性】
技术研发人员:汤波赵阳刘琦
申请(专利权)人:携程计算机技术上海有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1