CN112016948A - 电子券码的生成方法、装置及存储介质、电子装置 - Google Patents
电子券码的生成方法、装置及存储介质、电子装置 Download PDFInfo
- Publication number
- CN112016948A CN112016948A CN201910471717.7A CN201910471717A CN112016948A CN 112016948 A CN112016948 A CN 112016948A CN 201910471717 A CN201910471717 A CN 201910471717A CN 112016948 A CN112016948 A CN 112016948A
- Authority
- CN
- China
- Prior art keywords
- preset
- numerical
- decimal
- sequence
- value
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 10
- 230000001502 supplementing effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Abstract
本发明提供了一种电子券码的生成方法、装置及存储介质、电子装置,其中,该方法包括:接收获取指定种类的电子券的请求,其中,每张指定种类的电子券通过预设位数的十进制电子券码唯一的标识;在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,预设选取规则包括针对每个请求不重复的选取一个元素,预设数值序列为预先根据十进制电子券码的数值范围在伽罗华域内选取出的序列;根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码。通过本发明,解决了现有技术中的券码生成方法易于预测、容易产生重复码的问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种电子券码的生成方法、装置及存储介质、电子装置。
背景技术
在电商领域中,电商平台在为平台中的商家做营销活动时,常常会给用户(消费者或潜在消费者)发一张电子券,例如,代金券、商品兑换券、折扣券等电子券品种。比如,用户在下单购买一件商品之后,触发电商平台的发券系统生成一张券,并为该券生成一个唯一的标识,也即券码,该券码可以通过用户的APP查看。用户在拿到券后,在进行线上消费或线下消费进行付款时出示该券,商家将该券的券码发送到电商平台的核销系统之后,核销系统会根据该电子券的唯一券码信息来确定电子券的合法性,如果合法,则根据电子券的品种确定用户在针对该商家消费时所享受的各项权益。
券码生成方法存在于发券系统,目前的券码生成方法主要是采用十进制的券码,十进制比较符合大众使用习惯。也存在十六进制或其它进制的券码生成方法。当前主要有顺序加1的方法和截断的方法。加1方法也就是在原来的基础上加1,如1,2,3,…,1000000,虽然这种生成方法可以对券进行惟一编号和索引,但是该方法生成的号码易于预测,会给电商系统带来安全风险。截断的方法是在对数值进行转换之后,对超出券码指定位数的部分进行截断,这种方法往往会导致出现编号重复的现象,尤其是在接近券码最大数值的附近出现重复的概率大大增加,导致用户无法进行核销。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种电子券码的生成方法、装置及存储介质、电子装置,以至少解决现有技术中的券码生成方法易于预测、容易产生重复码的问题。
根据本发明的一个实施例,提供了一种电子券码的生成方法,包括:接收获取指定种类的电子券的请求,其中,每张指定种类的电子券通过预设位数的十进制电子券码唯一的标识;在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,预设选取规则包括针对每个请求不重复的选取一个元素,预设数值序列为预先根据十进制电子券码的数值范围在伽罗华域内选取出的序列;根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码。
进一步地,在预设数值序列内按照预设选取规则选取一个元素之前,该方法还包括:根据预设位数,确定十进制电子券码的数值范围;确定伽罗华域的类型;根据数值范围和伽罗华域的类型,确定预设数值序列的取值范围;根据预设数值序列的数值范围,在伽罗华域内选取多个元素,得到预设数值序列。
进一步地,根据数值范围和伽罗华域的类型,确定预设数值序列的取值范围,包括:根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值;确定预设数值序列的预设下限,得到第二阈值;根据预设数值序列的数值范围,在伽罗华域内选取多个元素,得到预设数值序列,包括:在伽罗华域内选取小于第一阈值且大于第二阈值的元素,得到预设数值序列。
进一步地,伽罗华域的类型为GF(P),其中,P为素数,根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值,包括:根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;选取大于十进制电子券码的数值范围上限的素数,得到第一阈值;或者,伽罗华域的类型为GF(2n),其中,n为正整数,根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值,包括:根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;选取大于十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
进一步地,在预设数值序列内按照预设选取规则选取一个元素据数值范围,确定预设数值序列的数值个数N;在伽罗华域内选取N个元素,得到预设数值序列。
进一步地,在预设数值序列内按照预设选取规则选取一个元素,包括:确定请求的当前接收次数;在预设数值序列中确定与当前接收次数对应的元素。
进一步地,在预设数值序列内按照预设选取规则选取一个元素之前,该方法还包括:获取预设数值序列;确定预设数值序列中每个元素的乘法逆元,得到乘法逆元序列;保存预设数值序列至乘法逆元序列的映射;确定选取出的元素的乘法逆元,包括:根据映射在乘法逆元序列中确定选取出的元素的乘法逆元。
进一步地,确定选取出的元素的乘法逆元,包括:利用求解乘法逆元的组件计算选取出的元素的乘法逆元。
进一步地,根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码,包括:判断乘法逆元是否超过十进制电子券码的数值范围的最大值;如果否,则利用预设补齐方式将乘法逆元的位数补齐至预设位数,得到十进制电子券码;如果是,则利用预设补齐方式将选取出的元素的位数补齐至预设位数,得到十进制电子券码,或者,利用预设转换方式将乘法逆元转换至小于十进制电子券码的数值范围的最大值,并利用预设补齐方式将乘法逆元转换后得到的数值的位数补齐至预设位数,得到十进制电子券码。
进一步地,预设补齐方式为:在最高位数字之前填充数字0,直至位数补齐至预设位数。
进一步地,预设转换方式为一种加密算法或多种加密算法的组合。
根据本发明的另一个实施例,提供了一种电子券码的生成装置,该装置包括:接收模块,用于接收获取指定种类的电子券的请求,其中,每张指定种类的电子券通过预设位数的十进制电子券码唯一的标识;执行模块,用于在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,预设选取规则包括针对每个请求不重复的选取一个元素,预设数值序列为预先根据十进制电子券码的数值范围在伽罗华域内选取出的序列;生成模块,用于根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码。
进一步地,该装置还包括:第一确定模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,根据预设位数,确定十进制电子券码的数值范围;第二确定模块,用于确定伽罗华域的类型;第三确定模块,用于根据数值范围和伽罗华域的类型,确定预设数值序列的取值范围;第一选取模块,用于根据预设数值序列的数值范围,在伽罗华域内选取多个元素,得到预设数值序列。
进一步地,第三确定模块包括:第一确定单元,用于根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值;第二确定单元,用于确定预设数值序列的预设下限,得到第二阈值;第一选取模块包括:第一选取单元,用于在伽罗华域内选取小于第一阈值且大于第二阈值的元素,得到预设数值序列。
进一步地,伽罗华域的类型为GF(P),其中,P为素数,第一确定单元包括:第三确定单元,用于根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;第二选取单元,用于选取大于十进制电子券码的数值范围上限的素数,得到第一阈值;或者,伽罗华域的类型为GF(2n),其中,n为正整数,第一确定单元包括:第四确定单元,用于根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;第三选取单元,用于选取大于十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
进一步地,该装置还包括:第四确定模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,根据预设位数,确定十进制电子券码的数值范围;第五确定模块,用于根据数值范围,确定预设数值序列的数值个数N;第二选取模块,用于在伽罗华域内选取N个元素,得到预设数值序列。
进一步地,第一选取模块包括:第五确定单元,用于确定请求的当前接收次数;第四选取单元,用于在预设数值序列中确定与当前接收次数对应的元素。
进一步地,该装置还包括:获取模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,获取预设数值序列;第六确定模块,用于确定预设数值序列中每个元素的乘法逆元,得到乘法逆元序列;保存模块,用于保存预设数值序列至乘法逆元序列的映射;执行模块包括:第六确定单元,用于根据映射在乘法逆元序列中确定选取出的元素的乘法逆元。
进一步地,执行模块包括:计算单元,用于利用求解乘法逆元的组件计算选取出的元素的乘法逆元。
进一步地,生成模块包括:判断单元,用于判断乘法逆元是否超过十进制电子券码的数值范围的最大值;补齐单元,用于如果否,则利用预设补齐方式将乘法逆元的位数补齐至预设位数,得到十进制电子券码;执行单元,用于如果是,则利用预设补齐方式将选取出的元素的位数补齐至预设位数,得到十进制电子券码,或者,利用预设转换方式将乘法逆元转换至小于十进制电子券码的数值范围的最大值,并利用预设补齐方式将乘法逆元转换后得到的数值的位数补齐至预设位数,得到十进制电子券码。
进一步地,预设补齐方式为:在最高位数字之前填充数字0,直至位数补齐至预设位数。
进一步地,预设转换方式为一种加密算法或多种加密算法的组合。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,在接收到请求之后,在伽罗华域中选取数值,进一步利用选取出的数值的乘法逆元来生成券码,由于在伽罗华域中选取数值是不重复的,因而不会产生重复码,且根据选取出的数值的乘法逆元来生成券码,使得生成的电子券码更不容易预测,增加电商服务系统的安全性,从而解决了现有技术中的券码生成方法易于预测、容易产生重复码的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的电子券码的生成方法的流程图;
图2是本发明实施例的电子券码的生成方法的示意图;
图3是根据本发明实施例的电子券码的生成方法在取乘法逆元之前和取乘法逆元之后的数值分布示意图;
图4是本发明实施例的电子券码的生成装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本实施例提供了一种电子券码的生成方法,可以以软件服务端、服务系统的软件组件等形式,应用于电商平台的服务系统,运行在服务器/服务器集群、工作站、个人计算机等类似的运算设备中。需要说明的是,运行在不同的运算设备仅是方案在执行主体上的差异,本领域人员可预见在不同运算设备中运行能够产生相同的技术效果。
本实施例提供的电子券码的生成方法用于生成预设位数的十进制电子券码,在接收到请求之后,在伽罗华域中选取数值,进一步利用选取出的数值的乘法逆元来生成券码,由于在伽罗华域中选取数值是不重复的,因而不会产生重复码,且根据选取出的数值的乘法逆元来生成券码,使得生成的电子券码更不容易预测,增加电商服务系统的安全性。
如图1所示,本实施例提供的电子券码的生成方法包括如下步骤:
步骤101,接收获取指定种类的电子券的请求,其中,每张指定种类的电子券通过预设位数的十进制电子券码唯一的标识:
请求由请求方所发送,请求方是向本实施例的执行方发送请求的一侧,例如,消费者的手机中安装使用的客户端、为消费者提供的电商购物网页平台等。请求方发送的请求用于获取电子券码,请求方发送请求的动作可以在用户执行预设操作、用户画像符合预设条件等情况下被触发,在请求方发送请求之后,本实施例的执行方接收请求。
接收到的请求用于指示接收方提供指定种类的电子券,电子券是一种用电子信息表示的权益,例如,减免金额、兑换商品、折扣的权益等等。每张电子券通过预设位数的十进制电子券码唯一的标识,预设位数是预先指定的数值,十进制电子券码是指券码的每一位都是十进制数值0~9。例如,12位的十进制电子券码取值在000000000000~999999999999之间。
步骤102,在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,预设选取规则包括针对每个请求不重复的选取一个元素,预设数值序列为预先根据十进制电子券码的数值范围在伽罗华域内选取出的序列:
伽罗华域(Galois Field,简写为GF)亦称有限域,是仅含有限个元素的域,伽罗华域的特性为,伽罗华域内的所有非0元素都具有乘法逆元,也即,除了零元(0)以外的其它元素都有乘法逆元,本实施例即应用伽罗华域的该项特性。以下两种类型的伽罗华域使用比较广泛:GF(P)和GF(P^n),P为素数,n为正整数,可选的,GF(P^n)可以选择GF(2^n)。
预设数值序列是从伽罗华域中选取的任意非零的预设数值序列。预设数值序列中的每个数值用于作为生成十进制电子券码的基础数值。由于伽罗华域具有上述的性质,因此,从伽罗华域中选取的任意非零的预设数值序列也同样具有上述的特性,即:预设数值序列(预设数值序列不包括零元)中的每个元素都具有乘法逆元。
预设数值序列可以在开发阶段根据券码的需求生成。
作为一种可选的实施方式,预设数值序列的生成方式可以是在执行步骤101之前,执行以下步骤:
步骤11,根据预设位数,确定十进制电子券码的数值范围:
例如,如果十进制电子券码的预设位数为12位,由于十进制数字最大值为9,则12位的十进制电子券码的数值范围的最大数值为999999999999。
步骤12,确定伽罗华域的类型:
由于伽罗华域有多种类型,每种类型的伽罗华域中的元素公式不同,可选的,可以选择GF(P)或GF(2^n),其中,P为素数,n为正整数。
步骤13,根据数值范围和伽罗华域的类型,确定预设数值序列的取值范围:
十进制电子券码的数值范围决定了所能够生成的券码值不同的十进制电子券码的最大个数,例如,对于数值范围在0~999999999999的十进制电子券码,所能够生成的不同数值的电子券码的最大个数为1000000000000。
由于伽罗华域的元素不是连续的整数,选择的伽罗华域的类型不同,会导致在同样数值范围内元素的个数有所不同,例如,选择类型为GF(P)与选择类型为GF(2^n)在0~50000000的数值范围内的元素个数是不同的。
也即,十进制电子券码的数值范围、以及伽罗华域的类型,会影响所需要的预设数值序列的取值范围。可以根据十进制电子券码的数值范围以及伽罗华域的类型,来确定所需要生成的预设数值序列的数值范围,举例而言,可以对每种伽罗华域的类型预设一个比例数值,该比例数值为十进制电子券码的数值范围与预设数值序列的数值范围的比值,例如,对于类型为GF(2^n)的伽罗华域,预先设置该比例数值为1:1.5。
具体的,在执行步骤13确定预设数值序列的取值范围时,可以分解为如下步骤:
步骤21,根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值;
步骤22,确定预设数值序列的预设下限,得到第二阈值;第二阈值是预设的,由于0元无乘法逆元,预设数值序列中不包括0,因此,第二阈值至少大于0。
在伽罗华域内选取多个元素时,采用步骤23:在伽罗华域内选取小于第一阈值且大于第二阈值的元素,得到预设数值序列。
进一步对上述确定预设数值序列的取值范围进行举例如下:
在伽罗华域的类型为GF(P)时,其中,P为素数,根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值,包括:根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;选取大于十进制电子券码的数值范围上限的素数,得到第一阈值。
在伽罗华域的类型为GF(2n)时,其中,n为正整数,根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值,包括:根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;选取大于十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
步骤14,在执行步骤13确定预设数值序列的数值范围之后,在预设数值序列的数值范围之内,在伽罗华域内选取多个元素,得到预设数值序列。
作为另一种可选的实施方式,预设数值序列的生成方式可以是在执行步骤101之前,执行以下步骤:
步骤31,根据预设位数,确定十进制电子券码的数值范围。
步骤31的具体执行方式与步骤11相似,在此不再赘述。
步骤32,根据数值范围,确定预设数值序列的数值个数N。
根据十进制电子券码的数值范围,可以确定能够生成的十进制电子券码的最大个数。预设数值序列的数值个数N是生成的十进制电子券码的实际个数,为了防止生成重复的券码,可以选取预设数值序列的数值个数N少于能够生成的十进制电子券码的最大个数,例如,可以设置预设数值序列的数值个数N与十进制电子券码的最大个数的比例为1:1.5。
步骤33,在伽罗华域内选取N个元素,得到预设数值序列。
在确定数值N之后,在伽罗华域内选取N个元素,得到预设数值序列。
在接收到请求之后,响应于请求,在预设数值序列中按照预设选取规则选取一个元素,预设选取规则包括针对每个请求不重复的选取一个元素,也即,针对每一次接收到的请求,在预设数值序列中所选取的元素是不同的。
举例而言,预设选取规则可以是随机的,每接收到一个请求之后随机在预设数值序列中选取一个元素,并将该元素在预设数值序列中删除,以使后续接收到的请求无法在预设数值序列中选取到相同的元素,从而达到不重复选取的效果。
或者,预设选取规则也可以是在接收请求方发送的获取预设位数的十进制电子券码的请求之后,确定请求的当前接收次数,进而,在预设数值序列中确定与当前接收次数对应的元素,也即,依照当前接收到请求的次数、按顺序在预设数值序列中选取不同的元素,达到不重复选取元素的效果。例如,可以按顺序有小到大在预设数值序列中选取当前接收请求的次数所对应的数值,如对于预设数值序列{2,3,5,7,11……},在第一次接收到请求之后,选取数值2,在第二次接收到请求之后,选取数值3,在第三次接收到请求之后,选取数值5,以此类推。
由于伽罗华域中的每个元素都有乘法逆元,因而,预设数值序列中的每个元素也具有乘法逆元,在响应请求从预设数值序列中抽取一个元素之后,确定抽取出的元素的乘法逆元。
作为可选的实施方式,确定抽取出的元素的乘法逆元可以采用以下两种方式之一:
第一种方式为,在执行步骤101之前,预先计算出预设数值序列中每个元素的乘法逆元并进行存储,从而在每次接收到请求之后,确定选取出的元素所对应的乘法逆元。这种方式仅需耗费较少的存储空间存储预设数值序列中每个元素的乘法逆元的映射关系,使得每次接收到请求之后无需计算乘法逆元,减少了计算乘法逆元的过程,提高了获取券码的响应速度。
例如,在接收获取券码的请求之前,执行如下步骤:
步骤41,获取预设数值序列:
可选的,预设数值序列可以通过上述生成预设数值序列的方式生成,在此不再赘述。在生成预设数值序列之后,获取生成的预设数值序列。
步骤42,确定预设数值序列中每个元素的乘法逆元,得到乘法逆元序列:
根据乘法逆元的计算方法计算预设数值序列中每个元素的乘法逆元,或者通过已有的乘法逆元对应的映射表,来确定预设数值序列中每个元素的乘法逆元,从而得到乘法逆元序列。
步骤43,保存预设数值序列至乘法逆元序列的映射。
相应地,在确定选取出的元素的乘法逆元时,根据保存的映射在乘法逆元序列中确定选取出的元素的乘法逆元。
第二种方式为,预先配置用于计算乘法逆元的(软件)组件,在每次接收到获取券码的请求之后,选取预设数值序列中的一个元素,并调用预先配置的用于求解乘法逆元的组件来计算乘法逆元。
步骤103,根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码:
选取出的元素的乘法逆元一定是十进制的数值,但是,乘法逆元的可能会小于或超出所需求的十进制电子券码的预设位数,因而,需要将乘法逆元的位数处理为预设位数。
具体的,如图3所示,在预设数值序列中选取的元素的乘法逆元有以下几种对应情况:
情况1:预设数值序列中选取的元素在范围(0,10n-1)之内,且乘法逆元也在范围(0,10n-1)之内,预设数值序列中的这部分元素可以记作集合S1,如图3中示出的块Ⅰ。这种情况所对应的选取出的元素进行乘法逆元变换后的数值在十进制电子券码的数值范围内,因此,在取乘法逆元之后,可以直接利用数字0填充在最高位之前,直至补齐到预设位数。
情况2:预设数值序列中选取的元素在范围(0,10n-1)之内,乘法逆元的数值范围在范围(10n-1~p-1)之内,预设数值序列中的这部分元素可以记作集合S2,如图3中示出的块Ⅱ。在预设数值序列中的这部分元素的乘法逆元不在十进制电子券码的数值范围内,也即,变换后超出了十进制电子券码的范围,对于集合S2中的元素,可以直接c采用元素本身而不是乘法逆元来生成十进制电子券码,具体的,由于元素一定在范围(0,q)之内,因此,可以利用数字0填充在元素的最高位之前,直至补齐到预设位数。
情况3:预设数值序列中选取的元素在范围(10n-1~p-1)之内,乘法逆元的数值范围也在范围(10n-1~p-1)之内,预设数值序列中的这部分元素可以记作集合S3,如图3中示出的块Ⅲ。对于集合S3中的元素,由于取乘法逆元后超出了十进制电子券码的数值范围,因此,可以放弃这部分元素,或者,对集合S3中的元素或其乘法逆元采用预设转换方式进行转换,例如,一种加密算法或几种加密算法的组合,以使通过预设转换方式转换后的数值在范围(0,10n-1)之内。
举例而言,步骤103可以通过以下步骤执行:步骤51,判断乘法逆元是否超过十进制电子券码的数值范围的最大值:
例如,对于预设位数为12位的十进制电子券码,电子券码的数值范围的最大值为999999999999,判断乘法逆元是否超过这个最大值。
如果判断结果为否,则执行步骤32,如果判断结果为是,则执行步骤33。
步骤52,如果否,则利用预设补齐方式将乘法逆元的位数补齐至预设位数,得到十进制电子券码。
如果乘法逆元的数值未超过十进制电子券码的数值范围的最大值,则说明乘法逆元的位数一定小于或等于预设位数。在乘法逆元的位数小于预设位数的情况下,需要通过预设补齐方式将乘法逆元的位数补齐至预设位数,得到预设位数的十进制电子券码。
预设补齐方式可以采用多种预设的指定补齐方式,举例而言,可以采用以下的预设补齐方式:
在最高位数字之前填充指定的十进制数字,直至位数补齐至预设位数。
例如,如果乘法逆元为1234,预设位数为12位,利用指定的十进制数字0在最高位“1”之前填充,补齐到12位,得到十进制电子券码为000000001234。可选的,还可以采用其它指定的十进制数字。
步骤53,如果是,则利用预设补齐方式将选取出的元素的位数补齐至预设位数,得到十进制电子券码,或者,利用预设转换方式将乘法逆元转换至小于十进制电子券码的数值范围的最大值,并利用预设补齐方式将乘法逆元转换后得到的数值的位数补齐至预设位数,得到十进制电子券码。
如果乘法逆元的数值超过了十进制电子券码的数值范围的最大值,则说明乘法逆元的位数一定大于预设位数,因而,需要通过一定的处理方式将乘法逆元的位数减少至小于或等于预设位数。
一种可选的方式为,放弃乘法逆元,直接利用选取出的元素补齐至预设位数,得到需求的十进制电子券码,这种方式简单快捷。
另一种可选的方式为,利用预设转换方式,如一种加密算法或几种加密算法的组合,将乘法逆元的位数处理至小于或等于预设位数,进而将转换后的位数小于预设位数的数值利用预设补齐方式补齐至预设位数,得到所需求的十进制电子券码。加密算法可以采用如RSA、AES等常用的数字加密算法。
其中,步骤102可以视作本实施例提供的电子券码的生成方法中的基础生成算法G,步骤103可以视作本实施例提供的电子券码的生成方法中的转换算法T,如图2所示。也即,通过伽罗华域的乘法逆元变换,得到一个基础的数值(在伽罗华域中选取出的元素的乘法逆元),进而,通过步骤103对步骤102得到的基础数值进行进一步的转换,使得数值位数在不足预设位数的情况下补齐至预设位数,在超过预设位数的情况下通过加密算法(或多个加密算法的组合)将数值变换为位数小于或等于预设位数的数值,补齐至预设位数,或者直接利用步骤102得到的数值补齐至预设位数,得到电子券码。
在得到十进制电子券码之后,可以根据十进制电子券码生成一张电子券发送至请求方。其中,电子券通过十进制电子券码唯一的标识。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种电子券码的生成装置,该装置用于实现上述实施例1及其优选实施方式,对于本实施例中未详述的术语或实现方式,可参见实施例1中的相关说明,已经进行过说明的不再赘述。
如以下所使用的术语“模块”,是可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可以被构想的。
图4是根据本发明实施例的电子券码的生成装置的示意图,如图4所示,该装置包括接收模块10,执行模块20和生成模块30。
其中,接收模块用于接收获取指定种类的电子券的请求,其中,每张指定种类的电子券通过预设位数的十进制电子券码唯一的标识;执行模块用于在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,预设选取规则包括针对每个请求不重复的选取一个元素,预设数值序列为预先根据十进制电子券码的数值范围在伽罗华域内选取出的序列;生成模块用于根据乘法逆元生成位数为预设位数的十进制数值,得到响应于请求的十进制电子券码。
可选的,该装置还包括:第一确定模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,根据预设位数,确定十进制电子券码的数值范围;第二确定模块,用于确定伽罗华域的类型;第三确定模块,用于根据数值范围和伽罗华域的类型,确定预设数值序列的取值范围;第一选取模块,用于根据预设数值序列的数值范围,在伽罗华域内选取多个元素,得到预设数值序列。
可选的,第三确定模块包括:第一确定单元,用于根据十进制电子券码的数值范围,确定预设数值序列的上限,得到第一阈值;第二确定单元,用于确定预设数值序列的预设下限,得到第二阈值;第一选取模块包括:第一选取单元,用于在伽罗华域内选取小于第一阈值且大于第二阈值的元素,得到预设数值序列。
可选的,伽罗华域的类型为GF(P),其中,P为素数,第一确定单元包括:第三确定单元,用于根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;第二选取单元,用于选取大于十进制电子券码的数值范围上限的素数,得到第一阈值;或者,伽罗华域的类型为GF(2n),其中,n为正整数,第一确定单元包括:第四确定单元,用于根据十进制电子券码的数值范围,确定十进制电子券码的数值范围上限;第三选取单元,用于选取大于十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
可选的,该装置还包括:第四确定模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,根据预设位数,确定十进制电子券码的数值范围;第五确定模块,用于根据数值范围,确定预设数值序列的数值个数N;第二选取模块,用于在伽罗华域内选取N个元素,得到预设数值序列。
可选的,第一选取模块包括:第五确定单元,用于确定请求的当前接收次数;第四选取单元,用于在预设数值序列中确定与当前接收次数对应的元素。
可选的,该装置还包括:获取模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,获取预设数值序列;第六确定模块,用于确定预设数值序列中每个元素的乘法逆元,得到乘法逆元序列;保存模块,用于保存预设数值序列至乘法逆元序列的映射;执行模块包括:第六确定单元,用于根据映射在乘法逆元序列中确定选取出的元素的乘法逆元。
可选的,执行模块包括:计算单元,用于利用求解乘法逆元的组件计算选取出的元素的乘法逆元。
可选的,生成模块包括:判断单元,用于判断乘法逆元是否超过十进制电子券码的数值范围的最大值;补齐单元,用于如果否,则利用预设补齐方式将乘法逆元的位数补齐至预设位数,得到十进制电子券码;执行单元,用于如果是,则利用预设补齐方式将选取出的元素的位数补齐至预设位数,得到十进制电子券码,或者,利用预设转换方式将乘法逆元转换至小于十进制电子券码的数值范围的最大值,并利用预设补齐方式将乘法逆元转换后得到的数值的位数补齐至预设位数,得到十进制电子券码。
可选的,预设补齐方式为:在最高位数字之前填充数字0,直至位数补齐至预设位数。
可选的,预设转换方式为一种加密算法或多种加密算法的组合。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种电子券码的生成方法,其特征在于,该方法包括:
接收获取指定种类的电子券的请求,其中,每张所述指定种类的电子券通过预设位数的十进制电子券码唯一的标识;
在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,所述预设选取规则包括针对每个所述请求不重复的选取一个元素,所述预设数值序列为预先根据所述十进制电子券码的数值范围在伽罗华域内选取出的序列;
根据所述乘法逆元生成位数为所述预设位数的十进制数值,得到响应于所述请求的十进制电子券码。
2.根据权利要求1所述的方法,其特征在于,在预设数值序列内按照预设选取规则选取一个元素之前,所述方法还包括:
根据所述预设位数,确定所述十进制电子券码的数值范围;
确定所述伽罗华域的类型;
根据所述数值范围和所述伽罗华域的类型,确定所述预设数值序列的取值范围;
根据所述预设数值序列的数值范围,在所述伽罗华域内选取多个元素,得到所述预设数值序列。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述数值范围和所述伽罗华域的类型,确定所述预设数值序列的取值范围,包括:根据所述十进制电子券码的数值范围,确定所述预设数值序列的上限,得到第一阈值;确定所述预设数值序列的预设下限,得到第二阈值;
所述根据所述预设数值序列的数值范围,在所述伽罗华域内选取多个元素,得到所述预设数值序列,包括:在所述伽罗华域内选取小于所述第一阈值且大于所述第二阈值的元素,得到所述预设数值序列。
4.根据权利要求3所述的方法,其特征在于,
所述伽罗华域的类型为GF(P),其中,P为素数,所述根据所述十进制电子券码的数值范围,确定所述预设数值序列的上限,得到第一阈值,包括:根据所述十进制电子券码的数值范围,确定所述十进制电子券码的数值范围上限;选取大于所述十进制电子券码的数值范围上限的素数,得到所述第一阈值;或者,
所述伽罗华域的类型为GF(2n),其中,n为正整数,所述根据所述十进制电子券码的数值范围,确定所述预设数值序列的上限,得到第一阈值,包括:根据所述十进制电子券码的数值范围,确定所述十进制电子券码的数值范围上限;选取大于所述十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
5.一种电子券码的生成装置,其特征在于,该装置包括:
接收模块,用于接收获取指定种类的电子券的请求,其中,每张所述指定种类的电子券通过预设位数的十进制电子券码唯一的标识;
执行模块,用于在预设数值序列内按照预设选取规则选取一个元素,并确定选取出的元素的乘法逆元,其中,所述预设选取规则包括针对每个所述请求不重复的选取一个元素,所述预设数值序列为预先根据所述十进制电子券码的数值范围在伽罗华域内选取出的序列;
生成模块,用于根据所述乘法逆元生成位数为所述预设位数的十进制数值,得到响应于所述请求的十进制电子券码。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在预设数值序列内按照预设选取规则选取一个元素之前,根据所述预设位数,确定所述十进制电子券码的数值范围;
第二确定模块,用于确定所述伽罗华域的类型;
第三确定模块,用于根据所述数值范围和所述伽罗华域的类型,确定所述预设数值序列的取值范围;
第一选取模块,用于根据所述预设数值序列的数值范围,在所述伽罗华域内选取多个元素,得到所述预设数值序列。
7.根据权利要求6所述的装置,其特征在于,
所述第三确定模块包括:第一确定单元,用于根据所述十进制电子券码的数值范围,确定所述预设数值序列的上限,得到第一阈值;第二确定单元,用于确定所述预设数值序列的预设下限,得到第二阈值;
所述第一选取模块包括:第一选取单元,用于在所述伽罗华域内选取小于所述第一阈值且大于所述第二阈值的元素,得到所述预设数值序列。
8.根据权利要求7所述的装置,其特征在于,
所述伽罗华域的类型为GF(P),其中,P为素数,所述第一确定单元包括:第三确定单元,用于根据所述十进制电子券码的数值范围,确定所述十进制电子券码的数值范围上限;第二选取单元,用于选取大于所述十进制电子券码的数值范围上限的素数,得到所述第一阈值;或者,
所述伽罗华域的类型为GF(2n),其中,n为正整数,所述第一确定单元包括:第四确定单元,用于根据所述十进制电子券码的数值范围,确定所述十进制电子券码的数值范围上限;第三选取单元,用于选取大于所述十进制电子券码的数值范围上限的数值2k,其中,k为正整数。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至4任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至4任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910471717.7A CN112016948B (zh) | 2019-05-31 | 2019-05-31 | 电子券码的生成方法、装置及存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910471717.7A CN112016948B (zh) | 2019-05-31 | 2019-05-31 | 电子券码的生成方法、装置及存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112016948A true CN112016948A (zh) | 2020-12-01 |
CN112016948B CN112016948B (zh) | 2024-01-23 |
Family
ID=73506367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910471717.7A Active CN112016948B (zh) | 2019-05-31 | 2019-05-31 | 电子券码的生成方法、装置及存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112016948B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090279688A1 (en) * | 2008-05-06 | 2009-11-12 | Harris Corporation | Closed galois field cryptographic system |
CN105373927A (zh) * | 2014-08-26 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 电子券的券码生成方法、装置及服务器 |
CN106127275A (zh) * | 2016-06-23 | 2016-11-16 | 福建富士通信息软件有限公司 | 一种付款条形码的编码方法 |
CN109117116A (zh) * | 2017-06-26 | 2019-01-01 | 上海新飞凡电子商务有限公司 | 基于自增序列的随机提货码生成方法 |
-
2019
- 2019-05-31 CN CN201910471717.7A patent/CN112016948B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090279688A1 (en) * | 2008-05-06 | 2009-11-12 | Harris Corporation | Closed galois field cryptographic system |
CN105373927A (zh) * | 2014-08-26 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 电子券的券码生成方法、装置及服务器 |
CN106127275A (zh) * | 2016-06-23 | 2016-11-16 | 福建富士通信息软件有限公司 | 一种付款条形码的编码方法 |
CN109117116A (zh) * | 2017-06-26 | 2019-01-01 | 上海新飞凡电子商务有限公司 | 基于自增序列的随机提货码生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112016948B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Green et al. | A protocol for privately reporting ad impressions at scale | |
US20170214644A1 (en) | Methods and systems for using deep-strings in computation and communication | |
US9641332B1 (en) | Privacy-preserving measurements of a campaign | |
CN111523891B (zh) | 基于区块链的信息加密方法、装置、设备及存储介质 | |
KR102202192B1 (ko) | 서비스 구현 방법, 결제 방법 및 장치 | |
JP6687628B2 (ja) | サービス実装 | |
US20130114806A1 (en) | Method for encrypting a message through the computation of mathematical functions comprising modular multiplications | |
CN108229966A (zh) | 一种银行卡交易处理方法、银行卡及银行服务器 | |
US11741242B2 (en) | Cryptographic pseudonym mapping method, computer system computer program and computer-readable medium | |
CN109034823A (zh) | 风险识别方法、装置及服务器 | |
CN108810047A (zh) | 用于确定信息推送准确率的方法、装置及服务器 | |
CN114826553A (zh) | 一种群签名和同态加密的云存储数据安全保护方法及装置 | |
CN110048830B (zh) | 一种数据加密解密方法和加密解密装置 | |
CN105516225B (zh) | 操作对象的方法、装置和系统 | |
EP4000216A1 (en) | Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium | |
CN105931090A (zh) | 一种电子票据发送方法及装置 | |
CN107169786B (zh) | 数据资源的处理方法和装置 | |
CN112016948A (zh) | 电子券码的生成方法、装置及存储介质、电子装置 | |
CN110677246A (zh) | 一种基于区块链的密钥生成方法及装置 | |
CN106371803A (zh) | 用于蒙哥马利域的计算方法和计算装置 | |
CN116842532A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN113055178B (zh) | 区块链系统及数值信息传输方法、系统、装置、介质 | |
CN116225373A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN112883301A (zh) | 基于55进制的短链接生成方法、装置及存储介质 | |
CN113762958A (zh) | 一种生成电子凭证的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |