CN113762958A - 一种生成电子凭证的方法和装置 - Google Patents

一种生成电子凭证的方法和装置 Download PDF

Info

Publication number
CN113762958A
CN113762958A CN202110004059.8A CN202110004059A CN113762958A CN 113762958 A CN113762958 A CN 113762958A CN 202110004059 A CN202110004059 A CN 202110004059A CN 113762958 A CN113762958 A CN 113762958A
Authority
CN
China
Prior art keywords
factor
user
data
electronic certificate
service
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.)
Pending
Application number
CN202110004059.8A
Other languages
English (en)
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110004059.8A priority Critical patent/CN113762958A/zh
Publication of CN113762958A publication Critical patent/CN113762958A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0208Trade or exchange of goods or services in exchange for incentives or rewards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0222During e-commerce, i.e. online transactions

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种生成电子凭证的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:生成业务方的电子凭证卡号,业务方的电子凭证卡号包括根据业务方的业务数据生成的业务方指纹因子,当用户请求获取业务方的电子凭证卡号对应的电子凭证时,生成包括用户的用户指纹因子的电子凭证激活码,用户的用户指纹因子是根据用户的用户信息生成的;根据业务方的电子凭证卡号和电子凭证激活码生成电子凭证。该实施方式能够提高凭证传播安全性,生成过程简单高效,无需存储设备支持,算法全程无需访问DB、redis、ES等持久化中间件,防止同一时间、不同用户兑换同一凭证,从而保证兑换规则,避免运营系统损失,防止算法外泄带来安全隐患。

Description

一种生成电子凭证的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成电子凭证的方法和装置。
背景技术
虚拟通用凭证系统是一个凭证发放验证与预约的中台系统,目前凭证生成方式有以下几种:一是使用系统随机数,从/dev/urandom里直接读取生成;二是使用语言函数获得,例如java的Math.random();三是使用公钥体系的兑换码,如RSA这种基于大数的算法。
由于运营活动具有特殊性,商家经常使用大面积推广的策略。往往在活动前提前批量申请大量的凭证,但推广活动凭证有效转化效率低,大量凭证生产后并没有真正被发给用户,大量占用数据库空间,无法被释放。另外,预先生成的凭证并不是直接发放给用户,而是发放给商家,商家再发放出去。凭证属于虚拟资产,需要非常高的保密安全性。凭证会以明文的方式交付给商家,凭证发放后,系统无法再追踪凭证的传播路径,每次凭证信息传递都会带来安全性风险。当凭证信息被意外泄漏,会导致多个用户知悉同一个凭证。当多个用户同时使用同一个凭证进行兑换时,服务器是无法在同一时间内进行区分的。同一时间、多个用户使用同一个凭证均有可能兑换成功,违背了兑换规则,会给商家带来损失。如果泄漏的凭证信息达到一定数量级,也有可能导致算法外泄,引来黑客攻击,对系统带来极大安全性隐患。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
每次凭证信息传递都会带来安全性风险,大量凭证生产后占用数据库空间,凭证信息泄漏还可能导致多人同时兑换成功,违背兑换规则而给商家带来损失,对系统也会带来极大安全性隐患。
发明内容
有鉴于此,本发明实施例提供一种生成电子凭证的方法和装置,能够提高凭证传播安全性,生成过程简单高效,无需存储设备支持,算法全程无需访问DB(数据库)、redis(Remote Dictionary Server,远程字典服务)、ES(ElasticSearch,一个分布式、高扩展、高实时的搜索与数据分析引擎)等持久化中间件,还可防止同一时间、不同用户兑换同一凭证,从而保证兑换规则,避免运营系统损失,防止算法外泄而对虚拟通用凭证系统带来安全隐患。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成电子凭证的方法。
一种生成电子凭证的方法,包括:生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子;当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息;根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
可选地,所述生成业务方的电子凭证卡号,包括:生成包括所述业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据所述预设比特数的数据得到所述业务方的电子凭证卡号,其中,所述业务方指纹因子通过以所述业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到;所述防重因子为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合;所述卡号校验位因子通过对所述业务方指纹因子和所述防重因子进行预设处理生成。
可选地,利用如下的所述预设规则生成所述防重因子:对当前时间到预设初始时间的时间差进行编码,得到时间因子;对当前机器的机器编号进行编码,得到机器编码因子;根据在相同的所述时间差和所述机器编码因子的情况下,生成各电子凭证卡号的排序,确定所述业务方的电子凭证卡号的序号,对所述序号编码,得到序号因子;以所述时间因子、所述机器编码因子、所述序号因子的有序组合,作为所述防重因子。
可选地,所述防重因子为二进制数据组合;对所述业务方指纹因子和所述防重因子进行预设处理,生成所述卡号校验位因子的步骤,包括:将所述业务方指纹因子和所述防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算,将得到的位运算结果转换为十进制数,再将该十进制数与一预设值分别做相除和取模的运算,并将所述相除和取模的运算结果相加,得到与该目标数据对应的处理结果;将所述隔位选取出的各目标数据对应的处理结果相加后加权,并对加权后得到的值对特定数值取模,得到所述卡号校验位因子。
可选地,所述生成包括所述用户的用户指纹因子的电子凭证激活码,包括:根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子;根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;根据所述用户的用户指纹因子、所述业务加密因子得到凭证激活码主体;利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码。
可选地,所述根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子,包括:将所述用户的用户信息转换为第一字节数组,并对所述第一字节数组编码,将所述第一字节数组的编码数据作为所述用户的用户指纹因子。
可选地,所述根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子,包括:对所述业务方的电子凭证卡号加密,得到所述业务方的电子凭证卡号密文,并从所述业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文;将所述业务方的业务数据转换为第二字节数组,并对所述第二字节数组编码,得到所述业务方的业务数据的编码数据;根据所述业务方的业务数据的编码数据、所述用户的用户信息、所述第一选定密文得到消息体,通过第二消息摘要算法对所述消息体进行摘要运算,得到第二消息摘要;从所述第二消息摘要选出第一比特数的第一数据段,将所述业务方的业务数据的编码数据与所述第一数据段拼装,得到第二比特数的拼装后数据;从所述消息体中选出所述第二比特数的第二数据段,将所述第二数据段与所述拼装后数据进行预设运算,得到所述第二比特数的所述业务加密因子。
可选地,所述利用选定的随机编码规则对所述凭证激活码主体进行随机编码之前,包括:对所述业务方的电子凭证卡号密文按照字节求和,将所述求和的结果对所述随机编码规则的数量进行取模,根据取模结果确定所述选定的随机编码规则的编号。
可选地,所述利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,包括:将所述凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从所述选定的随机编码规则中获取与所述每个片段对应的密文,从而得到所述预设数量的密文即为所述凭证激活码主体的随机编码数据;所述根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码,包括:根据所述选定的随机编码规则的编号,从所述选定的随机编码规则中获取与所述选定的随机编码规则的编号对应的密文;将与所述选定的随机编码规则的编号对应的密文与所述随机编码数据进行有序地组合,得到包括所述用户的用户指纹因子的电子凭证激活码。
根据本发明实施例的另一方面,提供了一种生成电子凭证的装置。
一种生成电子凭证的装置,包括:卡号生成模块,用于生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子;激活码生成模块,用于当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息;电子凭证生成模块,用于根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
可选地,所述卡号生成模块还用于:生成包括所述业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据所述预设比特数的数据得到所述业务方的电子凭证卡号,其中,所述业务方指纹因子通过以所述业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到;所述防重因子为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合;所述卡号校验位因子通过对所述业务方指纹因子和所述防重因子进行预设处理生成。
可选地,所述卡号生成模块利用如下的所述预设规则生成所述防重因子:对当前时间到预设初始时间的时间差进行编码,得到时间因子;对当前机器的机器编号进行编码,得到机器编码因子;根据在相同的所述时间差和所述机器编码因子的情况下,生成各电子凭证卡号的排序,确定所述业务方的电子凭证卡号的序号,对所述序号编码,得到序号因子;以所述时间因子、所述机器编码因子、所述序号因子的有序组合,作为所述防重因子。
可选地,所述防重因子为二进制数据组合;所述卡号生成模块通过如下方式对所述业务方指纹因子和所述防重因子进行预设处理,生成所述卡号校验位因子:将所述业务方指纹因子和所述防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算,将得到的位运算结果转换为十进制数,再将该十进制数与一预设值分别做相除和取模的运算,并将所述相除和取模的运算结果相加,得到与该目标数据对应的处理结果;将所述隔位选取出的各目标数据对应的处理结果相加后加权,并对加权后得到的值对特定数值取模,得到所述卡号校验位因子。
可选地,所述激活码生成模块还用于:根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子;根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;根据所述用户的用户指纹因子、所述业务加密因子得到凭证激活码主体;利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码。
可选地,所述激活码生成模块根据所述用户的用户信息,按照如下的第一数据生成规则生成所述用户的用户指纹因子:将所述用户的用户信息转换为第一字节数组,并对所述第一字节数组编码,将所述第一字节数组的编码数据作为所述用户的用户指纹因子。
可选地,所述激活码生成模块根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照如下的第二数据生成规则生成业务加密因子:对所述业务方的电子凭证卡号加密,得到所述业务方的电子凭证卡号密文,并从所述业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文;将所述业务方的业务数据转换为第二字节数组,并对所述第二字节数组编码,得到所述业务方的业务数据的编码数据;根据所述业务方的业务数据的编码数据、所述用户的用户信息、所述第一选定密文得到消息体,通过第二消息摘要算法对所述消息体进行摘要运算,得到第二消息摘要;从所述第二消息摘要选出第一比特数的第一数据段,将所述业务方的业务数据的编码数据与所述第一数据段拼装,得到第二比特数的拼装后数据;从所述消息体中选出所述第二比特数的第二数据段,将所述第二数据段与所述拼装后数据进行预设运算,得到所述第二比特数的所述业务加密因子。
可选地,所述激活码生成模块在利用选定的随机编码规则对所述凭证激活码主体进行随机编码之前,还用于:对所述业务方的电子凭证卡号密文按照字节求和,将所述求和的结果对所述随机编码规则的数量进行取模,根据取模结果确定所述选定的随机编码规则的编号。
可选地,所述激活码生成模块通过如下方式得到所述凭证激活码主体的随机编码数据:将所述凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从所述选定的随机编码规则中获取与所述每个片段对应的密文,从而得到所述预设数量的密文即为所述凭证激活码主体的随机编码数据;所述激活码生成模块通过如下方式得到包括所述用户的用户指纹因子的电子凭证激活码:根据所述选定的随机编码规则的编号,从所述选定的随机编码规则中获取与所述选定的随机编码规则的编号对应的密文;将与所述选定的随机编码规则的编号对应的密文与所述随机编码数据进行有序地组合,得到包括所述用户的用户指纹因子的电子凭证激活码。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的生成电子凭证的方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的生成电子凭证的方法。
上述发明中的一个实施例具有如下优点或有益效果:生成业务方的电子凭证卡号,业务方的电子凭证卡号包括根据业务方的业务数据生成的业务方指纹因子,当用户请求获取业务方的电子凭证卡号对应的电子凭证时,生成包括用户的用户指纹因子的电子凭证激活码,用户的用户指纹因子是根据用户的用户信息生成的,用户信息为用于标识该用户的信息;根据业务方的电子凭证卡号和电子凭证激活码生成电子凭证。能够提高凭证传播安全性,生成过程简单高效,无需存储设备支持,算法全程无需访问DB、redis、ES等持久化中间件,还可防止同一时间、不同用户兑换同一凭证,从而保证兑换规则,避免运营系统损失,防止算法外泄而对虚拟通用凭证系统带来安全隐患。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的生成电子凭证的方法的主要步骤示意图;
图2是根据本发明一个实施例的生成电子凭证的流程示意图;
图3是根据本发明一个实施例的生成电子凭证的装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的生成电子凭证的方法的主要步骤示意图。
如图1所示,本发明一个实施例的生成电子凭证的方法主要包括如下的步骤S101至步骤S103。
步骤S101:生成业务方的电子凭证卡号,业务方的电子凭证卡号包括根据业务方的业务数据生成的业务方指纹因子。
步骤S102:当用户请求获取业务方的电子凭证卡号对应的电子凭证时,生成包括用户的用户指纹因子的电子凭证激活码,用户的用户指纹因子是根据用户的用户信息生成的。
步骤S103:根据业务方的电子凭证卡号和电子凭证激活码,生成电子凭证。
电子凭证简称凭证,是由一系列字符组成,其兑换码对应系统中的一组信息,可以是优惠信息,也可以是相关商品信息。每一个凭证对应一个优惠信息或商品权益。
业务方可以是商家,业务方的业务数据可以是商家编号或其他表示商家的信息。用户的用户信息可以是用于标识该用户的信息,例如该用户的PIN码(PersonalIdentification Number,个人身份码)。
在一个实施例中,生成业务方的电子凭证卡号,包括:生成包括业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据该预设比特数的数据得到业务方的电子凭证卡号。
其中,业务方指纹因子具体可以以业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到。
防重因子在分布式系统中可以起到防重复的作用,具体可以为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合。指定格式例如二进制格式。
在一个实施例中,可以利用如下的预设规则生成防重因子:对当前时间到预设初始时间的时间差进行编码,得到时间因子;对当前机器的机器编号进行编码,得到机器编码因子;根据在相同的时间差和机器编码因子的情况下,生成各电子凭证卡号的排序,确定业务方的电子凭证卡号的序号,对序号编码,得到序号因子;以时间因子、机器编码因子、序号因子的有序组合,作为防重因子。
卡号校验位因子通过对业务方指纹因子和防重因子进行预设处理生成。
在一个实施例中,对业务方指纹因子和防重因子进行预设处理,生成卡号校验位因子的步骤,可以包括:将业务方指纹因子和防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算(例如左移一位的位运算),将得到的位运算结果转换为十进制数,再将该十进制数与一预设值(例如10)分别做相除和取模的运算,并将相除和取模的运算结果相加,得到与该目标数据对应的处理结果;将隔位选取出的各目标数据对应的处理结果相加后加权(权重可设置为7,即乘以7),并对加权后得到的值对特定数值(例如128)取模,得到卡号校验位因子。
在一个实施例中,生成包括用户的用户指纹因子的电子凭证激活码,包括:根据用户的用户信息,按照第一数据生成规则生成用户的用户指纹因子;根据业务方的业务数据、用户的用户信息、业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;根据用户的用户指纹因子、业务加密因子得到凭证激活码主体;利用选定的随机编码规则对凭证激活码主体进行随机编码,得到凭证激活码主体的随机编码数据,根据随机编码数据和选定的随机编码规则的编号,得到包括用户的用户指纹因子的电子凭证激活码。
根据用户的用户信息,按照第一数据生成规则生成用户的用户指纹因子的步骤,具体可以包括:将用户的用户信息转换为第一字节数组,并对第一字节数组编码,将第一字节数组的编码数据作为用户的用户指纹因子。
根据业务方的业务数据、用户的用户信息、业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子的步骤,具体可以包括:对业务方的电子凭证卡号加密,得到业务方的电子凭证卡号密文,并从业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文(例如256字节,优选地,可以选取后256字节);将业务方的业务数据转换为第二字节数组,并对第二字节数组编码,得到业务方的业务数据的编码数据;根据业务方的业务数据的编码数据、用户的用户信息、第一选定密文得到消息体,通过第二消息摘要算法对消息体进行摘要运算,得到第二消息摘要;从第二消息摘要选出第一比特数的第一数据段(例如18bit,优选地可以选出前18bit),将业务方的业务数据的编码数据与第一数据段拼装,得到第二比特数的拼装后数据;从消息体中选出第二比特数的第二数据段,将第二数据段与拼装后数据进行预设运算(例如异或),得到第二比特数的业务加密因子。
上述的第一消息摘要算法与第二消息摘要算法可以采用相同或不同的摘要算法,本发明实施例对此不作限定。
利用选定的随机编码规则对凭证激活码主体进行随机编码之前,可以对业务方的电子凭证卡号密文按照字节求和,将求和的结果对随机编码规则的数量(可以预先设置多套随机编码规则)进行取模,根据取模结果确定选定的随机编码规则的编号。
利用选定的随机编码规则对凭证激活码主体进行随机编码,得到凭证激活码主体的随机编码数据的步骤,具体可以包括:将凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从选定的随机编码规则中获取与每个片段对应的密文,从而得到预设数量的密文即为凭证激活码主体的随机编码数据。
每套随机编码规则中存储的是随机编码前的数据与随机编码后的数据(密文,可以是个32进制数)的对应关系,并且每套随机编码规则有各自的编号,随机编码前的数据采用不同编号下的随机编码规则进行随机编码,得到的密文是不同的。
根据随机编码数据和选定的随机编码规则的编号,得到包括用户的用户指纹因子的电子凭证激活码的步骤,具体可以包括:根据选定的随机编码规则的编号,从选定的随机编码规则中获取与选定的随机编码规则的编号对应的密文;将与选定的随机编码规则的编号对应的密文与随机编码数据进行有序地组合,得到包括用户的用户指纹因子的电子凭证激活码。
下面结合电商场景,详细介绍本发明实施例的生成电子凭证的方法。
在互联网电商场景中,商家经常会使用电子凭证进行商品或权限的兑换。电子凭证(优惠券)是商家用于活动推广常用的手段。现有方案有一种电子凭证,是预先生成交付给商家用来使用。商家一般用来做营销活动推广,会发放给广大用户。商家会批量申请很多凭证,数量极大。由于个体商家营销能力差异较大,很多商家的这类凭证发放率与兑换率都很低。这些凭证通常通常是唯一的,在兑换期间需要被长期保存。营销推广活动转化率低会造成大量凭证生产后没有真正发给最终用户,导致大量的凭证占用数据库空间,资源无法被释放。另外这些大批量的电子凭证交由商家保管,有着极大的安全隐患。本发明实施例提出的凭证兑换权益的算法,可以提供一个能支持商家营销活动预先生产凭证,该凭证安全可靠,防爆刷,生成过程简单高效,并且无需存储设备支持。
本发明实施例将电子凭证定义为两部分,卡号部分与激活码部分。卡号部分即电子凭证卡号,用于唯一定位一个凭证,可以安全地推广传递。激活码部分即电子凭证激活码,用来兑换/换取真实的商品权益,需用户安全保管。电子凭证激活码是真正用来兑换的,它只会被发给最终用户。
图2为本发明一个实施例的生成电子凭证的流程示意图。如图2所示,流程整体上包括:电子凭证卡号的算法(简称卡号算法)、电子凭证激活码的算法(简称激活码算法),通过卡号算法获得卡号,通过激活码算法获得激活码,根据卡号、激活码生成凭证。
本发明实施例的卡号算法,即:将业务数据(商家编号)集成到电子凭证卡号中,商家会拥有属于自己的电子凭证卡号。例如,电子凭证卡号可以固定为16位,全部为数字。电子凭证卡号中有商家的指纹信息,其他商家无法使用。这些预先生成的凭证,商家可以发给用户进行营销活动,进行市场推广。
本发明实施例的激活码算法,即:在激活码算法中添加了必要的业务因子,例如:商家编号、电子凭证卡号、用户指纹(即用户指纹因子)。只有该用户才可进行最后的凭证权限的兑换。另外,为了满足用户有二次赠与的需求,本发明实施例会为接受转赠的用户重新生成凭证,并加入赠与人的用户指纹。这极大地保证了用户的资产安全,避免同一个凭证兑换信息被多人同时知晓。同时也保护了电子凭证生成系统(服务器),避免因商家或用户对凭证信息保管不当而引起凭证信息外泄,从而引来黑客攻击。
本发明实施例的生成电子凭证的方法可以用于优惠券、奖品兑换、充值等很多场景。由于很多推广活动商家需要大量预先生成凭证,这类凭证往往有很多问题,例如:生成量大、兑换率低、不记名、丢失后无法找回等等。为了能够适用更多场景,本发明实施例提出使用结合业务因子的方式来生成电子凭证。上文已经简要介绍了本发明实施例的卡号算法和激活码算法,本发明实施例在兼容传统兑换业务的同时,还加入安全因子,从而保证电子凭证生成系统(服务器)的安全性。
下面结合具体示例进一步详细介绍本发明实施例的卡号算法和激活码算法。具体算法如下:
卡号算法:
卡号算法会生成固定16位数字,作为电子凭证卡号。电子凭证卡号实际是53bit的数据,具体由以下部分构成:
|4bit商家指纹校验码因子|30bit时间因子|3bit机器编号因子|9bit序号因子|7bit卡号因子|
其中,4bit商家指纹校验码因子即业务方指纹因子的一个示例,又可称为商家指纹因子或商家指纹信息。7bit卡号因子即卡号校验位因子的一个示例。30bit时间因子、3bit机器编号因子、9bit序号因子作为整体即防重因子的一个示例。
本发明一个实施例选用HMAC作为商家指纹信息生成算法。HMA C是一个消息摘要算法:HMAC(K,m)=H((K⊕opad)∥H((K⊕ipad)∥m)),即利用哈希算法,以一个密钥和一个消息为输入,生成一个固定长度的消息摘要作为输出。本发明实施例以商家编号作为HMAC的输入消息,密钥是随机生成的随机数。为了保护不同商家的凭证信息安全,本发明实施例提供“千人千面”策略,即:不同商家拥有不同的密钥,该密钥和商家编号会作为HMAC算法的输入参数,HMAC会生成一个消息摘要作为商家指纹因子。
First-Hash:H(Ko XOR Ipad||(data to auth))
Second-Hash:H(Ko XOR Opad||First-Hash)
需要说明的是,本发明实施例不仅限于采用上述消息摘要算法来生成商家指纹因子,只要基于商家编号可以生成一个固定长度的消息摘要的各种消息摘要算法均可以实现。
时间因子为30bit数据,这部分时间因子为算法生成时(即执行上述卡号算法时,或者采用当前时间点)到预设初始时间的毫秒数。预设初始时间可以为年度开始时间,以2020年为例,即:“2020-01-0100:00:00”。对于30bit的容量可以支持34年。
机器编号因子即机器编码因子,为3bit,它支持8台负载。8台负载同时对外提供服务,QPS(峰值时间每秒请求数)可以达到4000/s。
序号因子是在相同的时间差(时间因子)和机器编码因子的情况下,生成各电子凭证卡号的排序,确定商家电子凭证卡号的序号,对序号编码得到的。序号指示了同一时间点、同一机器上生成的电子凭证卡号的顺序。
卡号校验位因子,即上文的卡号因子,它保护卡号的自身安全,为7bit数据。该数据由|4bit商家“指纹”校验码因子|30bit时间因子|3bit机器编号因子|9bit序号因子|所构成的46bit数据,隔位处理,加权取模后生成。
7bit卡号因子(卡号校验位因子)的生成步骤具体为:
对于|4bit商家“指纹”校验码因子|30bit时间因子|3bit机器编号因子|9bit序号因子|,共46bit数据,将该46bit数据对应的十进制数据隔位选取,并对选取的数字分别进行如下处理:先转换为二进制,然后进行左移一位的位运算,将位运算结果转换为十进制数,再将该十进制数与10相除的结果和该十进制数对10取模的结果相加,得到与选取的数字对应的处理结果。将与各选取的数字对应的处理结果相加,并对相加的结果加权,对加权后得到的值对128取模,从而得到7bit卡号因子(卡号校验位因子)。
通过上述卡号算法生成电子凭证卡号,经过1000万16位随机数压测表明本发明实施例的卡号算法能够保证安全性。
激活码算法:
本发明一个实施例的激活码算法会生成全部大写和数字,其中排除“0”和“O”,“1”和“I”等易混淆字符,固定16位。电子凭证激活码实际是一个80bit的数据,具体构成如下:
|5bit编号因子|30bit用户“指纹”因子|45bit业务加密因子|
为了保证报文的安全,另外提供了32套随机编码规则。具体使用哪一套规则,可以通过对电子凭证卡号进行ChaCha20(一种对称加密算法)加密后再通过hash(哈希)决定。
本发明实施例不仅限于ChaCha20算法,还可以使用其他对称加密算法。
通过如下方式得到45bit业务加密因子:
选用ChaCha20对称加密算法,对电子凭证卡号进行加密,得到电子凭证卡号密文,对电子凭证卡号密文进行substirng(提取字符),即截取电子凭证卡号密文的前256字节作为HMAC的加密KEY(加密密钥),以及截取电子凭证卡号密文的后256字节作为第一选定密文。因HMAC引入了密钥,其安全性不完全依赖HASH算法,第三方不知道密钥,所以无法仿照出一致性。
将商家编号转换为Byte数组(即第二字节数组),并编码为27bit数据,即商家编号的编码数据。
接着使用HMAC算法进行摘要运算,得到消息摘要(即第二消息摘要),其中,HMAC算法的入参为上述取得的256位加密KEY和消息体,消息体包括:商家编号的编码数据、用户指纹、电子凭证卡号密文的后256字符(第一选定密文))。
从HMAC加密结果(即第二消息摘要)中取前18bit(即第一比特数)数据,得到第一数据段,将商家编号的编码数据(27bit)与该第一数据段(18bit)拼装成45bit(第二比特数)的拼装后数据。
从HMAC加密的消息体(商家编号、用户指纹、电子凭证卡号密文的后256字符)中取前45bit(第二比特数)数据,得到第二数据段,将第二数据段与上一步刚拼装好的45bit的拼装后数据进行异或运算,得到45bit密文,即为45bit业务加密因子。
通过如下方式生成30bit用户指纹因子:
将用户的用户信息(例如用户PIN)转换为byte数组(即第一字节数组),再编码为30bit数据,得到第一字节数组的编码数据,即为30bit用户指纹因子。
将30bit用户指纹因子和45bit业务加密因子拼接,获得75bit的凭证激活码主体。
通过如下方式得到5bit编号因子:
对电子凭证卡号密文按字节进行求和,将该求和的结果对规则数(即随机编码规则的数量,本例采用32套随机编码规则,规则数即为32)进行取模,得到一套随机编码规则的编号,即选定的随机编码规则的编号,其可以编码为5bit数据,即5bit编号因子。
通过上述的|5bit编号因子|30bit用户“指纹”因子|45bit业务加密因子|(其中30bit用户指纹因子和45bit业务加密因子拼接为75bit的凭证激活码主体),得到16位电子凭证激活码。具体地,先利用选定的随机编码规则,对凭证激活码主体进行随机编码,以取得凭证激活码主体的随机编码数据,为15位32进制数。将该15位32进制数与对规则取模获得结果(即选定的随机编码规则的编号,可以转换为1位32进制数)拼接在一起,获得16位电子凭证激活码(例如图2所示的兑换码)。
本发明实施例的电子凭证激活码具备较高的安全性,假设在算法暴露的情况下,对本发明实施例的电子凭证激活码进行暴力破解,破解一个电子凭证激活码至少要进行2的45次方尝试,而在正常情况下暴力破解,校验通过的概率很小。
本发明实施例通过将电子凭证的卡号与激活码进行分离,解决了电商等场景中预先生成凭证的凭证安全问题。并且,电子凭证卡号中含有商家指纹因子,电子凭证激活码中含有用户指纹因子,可以极大地提升虚拟资产安全性。本发明实施例还通过技术的加密算法组合,防止同一时间、不同用户兑换同一个凭证,保证兑换规则,避免运营系统的的损失,通过本发明实施例的方法生成电子凭证,具有防爆刷的特性,并且效率高。
图3是根据本发明一个实施例的生成电子凭证的装置的主要模块示意图。
如图3所示,本发明一个实施例的生成电子凭证的装置300主要包括:卡号生成模块301、激活码生成模块302、电子凭证生成模块303。
卡号生成模块301,用于生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子。
激活码生成模块302,用于当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息。
电子凭证生成模块303,用于根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
在一个实施例中,卡号生成模块301用于:生成包括所述业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据所述预设比特数的数据得到所述业务方的电子凭证卡号,其中,所述业务方指纹因子通过以所述业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到;所述防重因子为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合;所述卡号校验位因子通过对所述业务方指纹因子和所述防重因子进行预设处理生成。
卡号生成模块301可以利用如下的预设规则生成所述防重因子:对当前时间到预设初始时间的时间差进行编码,得到时间因子;对当前机器的机器编号进行编码,得到机器编码因子;根据在相同的所述时间差和所述机器编码因子的情况下,生成各电子凭证卡号的排序,确定所述业务方的电子凭证卡号的序号,对所述序号编码,得到序号因子;以所述时间因子、所述机器编码因子、所述序号因子的有序组合,作为所述防重因子。
防重因子可以为二进制数据组合。
卡号生成模块301可以通过如下方式对所述业务方指纹因子和所述防重因子进行预设处理,生成所述卡号校验位因子:将所述业务方指纹因子和所述防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算,将得到的位运算结果转换为十进制数,再将该十进制数与一预设值分别做相除和取模的运算,并将所述相除和取模的运算结果相加,得到与该目标数据对应的处理结果;将所述隔位选取出的各目标数据对应的处理结果相加后加权,并对加权后得到的值对特定数值取模,得到所述卡号校验位因子。
在一个实施例中,激活码生成模块302用于:根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子;根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;根据所述用户的用户指纹因子、所述业务加密因子得到凭证激活码主体;利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码。
激活码生成模块302根据所述用户的用户信息,可以按照如下的第一数据生成规则生成所述用户的用户指纹因子:将所述用户的用户信息转换为第一字节数组,并对所述第一字节数组编码,将所述第一字节数组的编码数据作为所述用户的用户指纹因子。
激活码生成模块302根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,可以按照如下的第二数据生成规则生成业务加密因子:对所述业务方的电子凭证卡号加密,得到所述业务方的电子凭证卡号密文,并从所述业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文;将所述业务方的业务数据转换为第二字节数组,并对所述第二字节数组编码,得到所述业务方的业务数据的编码数据;根据所述业务方的业务数据的编码数据、所述用户的用户信息、所述第一选定密文得到消息体,通过第二消息摘要算法对所述消息体进行摘要运算,得到第二消息摘要;从所述第二消息摘要选出第一比特数的第一数据段,将所述业务方的业务数据的编码数据与所述第一数据段拼装,得到第二比特数的拼装后数据;从所述消息体中选出所述第二比特数的第二数据段,将所述第二数据段与所述拼装后数据进行预设运算,得到所述第二比特数的所述业务加密因子。
激活码生成模块302在利用选定的随机编码规则对所述凭证激活码主体进行随机编码之前,还可以对所述业务方的电子凭证卡号密文按照字节求和,将所述求和的结果对所述随机编码规则的数量进行取模,根据取模结果确定所述选定的随机编码规则的编号。
激活码生成模块302可以通过如下方式得到所述凭证激活码主体的随机编码数据:将所述凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从所述选定的随机编码规则中获取与所述每个片段对应的密文,从而得到所述预设数量的密文即为所述凭证激活码主体的随机编码数据。
激活码生成模块302可以通过如下方式得到包括所述用户的用户指纹因子的电子凭证激活码:根据所述选定的随机编码规则的编号,从所述选定的随机编码规则中获取与所述选定的随机编码规则的编号对应的密文;将与所述选定的随机编码规则的编号对应的密文与所述随机编码数据进行有序地组合,得到包括所述用户的用户指纹因子的电子凭证激活码。
在本发明实施例中生成电子凭证的装置的具体实施内容,在上面所述生成电子凭证的方法中已经详细说明了,故在此重复内容不再说明。
本发明实施例可以解决现有商家营销活动凭证预生成,凭证明文交付商家,凭证传播安全无保证的问题,本发明实施例集成业务数据到电子凭证中,凭证归属有保证,并且算法全程无需访问DB、redis、es等持久化中间件、计算高效简单,此外,电子凭证生成基于JVM,支持分布式生成方式,具有效率高的特点。
图4示出了可以应用本发明实施例的生成电子凭证的方法或生成电子凭证的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的生成电子凭证的方法一般由服务器405执行,相应地,生成电子凭证的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本申请实施例的服务器的计算机系统500的结构示意图。图5示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括卡号生成模块、激活码生成模块、电子凭证生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,卡号生成模块还可以被描述为“用于生成业务方的电子凭证卡号的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子;当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息;根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
根据本发明实施例的技术方案,生成业务方的电子凭证卡号,业务方的电子凭证卡号包括根据业务方的业务数据生成的业务方指纹因子,当用户请求获取业务方的电子凭证卡号对应的电子凭证时,生成包括用户的用户指纹因子的电子凭证激活码,用户的用户指纹因子是根据用户的用户信息生成的,用户信息为用于标识该用户的信息;根据业务方的电子凭证卡号和电子凭证激活码生成电子凭证。能够提高凭证传播安全性,生成过程简单高效,无需存储设备支持,算法全程无需访问DB、redis、ES等持久化中间件,还可防止同一时间、不同用户兑换同一凭证,从而保证兑换规则,避免运营系统损失,防止算法外泄而对虚拟通用凭证系统带来安全隐患。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (20)

1.一种生成电子凭证的方法,其特征在于,包括:
生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子;
当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息;
根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
2.根据权利要求1所述的方法,其特征在于,所述生成业务方的电子凭证卡号,包括:
生成包括所述业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据所述预设比特数的数据得到所述业务方的电子凭证卡号,其中,所述业务方指纹因子通过以所述业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到;所述防重因子为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合;所述卡号校验位因子通过对所述业务方指纹因子和所述防重因子进行预设处理生成。
3.根据权利要求2所述的方法,其特征在于,利用如下的所述预设规则生成所述防重因子:
对当前时间到预设初始时间的时间差进行编码,得到时间因子;
对当前机器的机器编号进行编码,得到机器编码因子;
根据在相同的所述时间差和所述机器编码因子的情况下,生成各电子凭证卡号的排序,确定所述业务方的电子凭证卡号的序号,对所述序号编码,得到序号因子;
以所述时间因子、所述机器编码因子、所述序号因子的有序组合,作为所述防重因子。
4.根据权利要求2或3所述的方法,其特征在于,所述防重因子为二进制数据组合;
对所述业务方指纹因子和所述防重因子进行预设处理,生成所述卡号校验位因子的步骤,包括:
将所述业务方指纹因子和所述防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算,将得到的位运算结果转换为十进制数,再将该十进制数与一预设值分别做相除和取模的运算,并将所述相除和取模的运算结果相加,得到与该目标数据对应的处理结果;
将所述隔位选取出的各目标数据对应的处理结果相加后加权,并对加权后得到的值对特定数值取模,得到所述卡号校验位因子。
5.根据权利要求1所述的方法,其特征在于,所述生成包括所述用户的用户指纹因子的电子凭证激活码,包括:
根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子;
根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;
根据所述用户的用户指纹因子、所述业务加密因子得到凭证激活码主体;
利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码。
6.根据权利要求5所述的方法,其特征在于,所述根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子,包括:
将所述用户的用户信息转换为第一字节数组,并对所述第一字节数组编码,将所述第一字节数组的编码数据作为所述用户的用户指纹因子。
7.根据权利要求6所述的方法,其特征在于,所述根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子,包括:
对所述业务方的电子凭证卡号加密,得到所述业务方的电子凭证卡号密文,并从所述业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文;
将所述业务方的业务数据转换为第二字节数组,并对所述第二字节数组编码,得到所述业务方的业务数据的编码数据;
根据所述业务方的业务数据的编码数据、所述用户的用户信息、所述第一选定密文得到消息体,通过第二消息摘要算法对所述消息体进行摘要运算,得到第二消息摘要;
从所述第二消息摘要选出第一比特数的第一数据段,将所述业务方的业务数据的编码数据与所述第一数据段拼装,得到第二比特数的拼装后数据;
从所述消息体中选出所述第二比特数的第二数据段,将所述第二数据段与所述拼装后数据进行预设运算,得到所述第二比特数的所述业务加密因子。
8.根据权利要求7所述的方法,其特征在于,所述利用选定的随机编码规则对所述凭证激活码主体进行随机编码之前,包括:
对所述业务方的电子凭证卡号密文按照字节求和,将所述求和的结果对所述随机编码规则的数量进行取模,根据取模结果确定所述选定的随机编码规则的编号。
9.根据权利要求5或7所述的方法,其特征在于,所述利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,包括:
将所述凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从所述选定的随机编码规则中获取与所述每个片段对应的密文,从而得到所述预设数量的密文即为所述凭证激活码主体的随机编码数据;
所述根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码,包括:
根据所述选定的随机编码规则的编号,从所述选定的随机编码规则中获取与所述选定的随机编码规则的编号对应的密文;
将与所述选定的随机编码规则的编号对应的密文与所述随机编码数据进行有序地组合,得到包括所述用户的用户指纹因子的电子凭证激活码。
10.一种生成电子凭证的装置,其特征在于,包括:
卡号生成模块,用于生成业务方的电子凭证卡号,所述业务方的电子凭证卡号包括根据所述业务方的业务数据生成的业务方指纹因子;
激活码生成模块,用于当用户请求获取所述业务方的电子凭证卡号对应的电子凭证时,生成包括所述用户的用户指纹因子的电子凭证激活码,所述用户的用户指纹因子是根据所述用户的用户信息生成的,所述用户信息为用于标识所述用户的信息;
电子凭证生成模块,用于根据所述业务方的电子凭证卡号和所述电子凭证激活码,生成所述电子凭证。
11.根据权利要求10所述的装置,其特征在于,所述卡号生成模块还用于:
生成包括所述业务方指纹因子、防重因子和卡号校验位因子的预设比特数的数据,根据所述预设比特数的数据得到所述业务方的电子凭证卡号,其中,所述业务方指纹因子通过以所述业务方的业务数据作为消息,利用第一消息摘要算法进行摘要运算得到;所述防重因子为利用预设规则生成的用于防止与其他电子凭证卡号重复的指定格式的数据组合;所述卡号校验位因子通过对所述业务方指纹因子和所述防重因子进行预设处理生成。
12.根据权利要求11所述的装置,其特征在于,所述卡号生成模块利用如下的所述预设规则生成所述防重因子:
对当前时间到预设初始时间的时间差进行编码,得到时间因子;
对当前机器的机器编号进行编码,得到机器编码因子;
根据在相同的所述时间差和所述机器编码因子的情况下,生成各电子凭证卡号的排序,确定所述业务方的电子凭证卡号的序号,对所述序号编码,得到序号因子;
以所述时间因子、所述机器编码因子、所述序号因子的有序组合,作为所述防重因子。
13.根据权利要求11或12所述的装置,其特征在于,所述防重因子为二进制数据组合;
所述卡号生成模块通过如下方式对所述业务方指纹因子和所述防重因子进行预设处理,生成所述卡号校验位因子:
将所述业务方指纹因子和所述防重因子的组合后数据转换为十进制的数据并隔位选取,对于隔位选取出的每一目标数据分别执行如下处理:将该目标数据转换为二进制,并进行预设的位运算,将得到的位运算结果转换为十进制数,再将该十进制数与一预设值分别做相除和取模的运算,并将所述相除和取模的运算结果相加,得到与该目标数据对应的处理结果;
将所述隔位选取出的各目标数据对应的处理结果相加后加权,并对加权后得到的值对特定数值取模,得到所述卡号校验位因子。
14.根据权利要求10所述的装置,其特征在于,所述激活码生成模块还用于:
根据所述用户的用户信息,按照第一数据生成规则生成所述用户的用户指纹因子;
根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照第二数据生成规则生成业务加密因子;
根据所述用户的用户指纹因子、所述业务加密因子得到凭证激活码主体;
利用选定的随机编码规则对所述凭证激活码主体进行随机编码,得到所述凭证激活码主体的随机编码数据,根据所述随机编码数据和所述选定的随机编码规则的编号,得到包括所述用户的用户指纹因子的电子凭证激活码。
15.根据权利要求14所述的装置,其特征在于,所述激活码生成模块根据所述用户的用户信息,按照如下的第一数据生成规则生成所述用户的用户指纹因子:
将所述用户的用户信息转换为第一字节数组,并对所述第一字节数组编码,将所述第一字节数组的编码数据作为所述用户的用户指纹因子。
16.根据权利要求15所述的装置,其特征在于,所述激活码生成模块根据所述业务方的业务数据、所述用户的用户信息、所述业务方的电子凭证卡号,按照如下的第二数据生成规则生成业务加密因子:
对所述业务方的电子凭证卡号加密,得到所述业务方的电子凭证卡号密文,并从所述业务方的电子凭证卡号密文中选出第一预设字节数的第一选定密文;
将所述业务方的业务数据转换为第二字节数组,并对所述第二字节数组编码,得到所述业务方的业务数据的编码数据;
根据所述业务方的业务数据的编码数据、所述用户的用户信息、所述第一选定密文得到消息体,通过第二消息摘要算法对所述消息体进行摘要运算,得到第二消息摘要;
从所述第二消息摘要选出第一比特数的第一数据段,将所述业务方的业务数据的编码数据与所述第一数据段拼装,得到第二比特数的拼装后数据;
从所述消息体中选出所述第二比特数的第二数据段,将所述第二数据段与所述拼装后数据进行预设运算,得到所述第二比特数的所述业务加密因子。
17.根据权利要求16所述的装置,其特征在于,所述激活码生成模块在利用选定的随机编码规则对所述凭证激活码主体进行随机编码之前,还用于:
对所述业务方的电子凭证卡号密文按照字节求和,将所述求和的结果对所述随机编码规则的数量进行取模,根据取模结果确定所述选定的随机编码规则的编号。
18.根据权利要求14或16所述的装置,其特征在于,所述激活码生成模块通过如下方式得到所述凭证激活码主体的随机编码数据:
将所述凭证激活码主体切分为预设数量的片段,每个片段包括多个比特数据,从所述选定的随机编码规则中获取与所述每个片段对应的密文,从而得到所述预设数量的密文即为所述凭证激活码主体的随机编码数据;
所述激活码生成模块通过如下方式得到包括所述用户的用户指纹因子的电子凭证激活码:
根据所述选定的随机编码规则的编号,从所述选定的随机编码规则中获取与所述选定的随机编码规则的编号对应的密文;
将与所述选定的随机编码规则的编号对应的密文与所述随机编码数据进行有序地组合,得到包括所述用户的用户指纹因子的电子凭证激活码。
19.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
20.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
CN202110004059.8A 2021-01-04 2021-01-04 一种生成电子凭证的方法和装置 Pending CN113762958A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110004059.8A CN113762958A (zh) 2021-01-04 2021-01-04 一种生成电子凭证的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110004059.8A CN113762958A (zh) 2021-01-04 2021-01-04 一种生成电子凭证的方法和装置

Publications (1)

Publication Number Publication Date
CN113762958A true CN113762958A (zh) 2021-12-07

Family

ID=78786323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110004059.8A Pending CN113762958A (zh) 2021-01-04 2021-01-04 一种生成电子凭证的方法和装置

Country Status (1)

Country Link
CN (1) CN113762958A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866271A (zh) * 2022-03-15 2022-08-05 上海东普信息科技有限公司 电子凭证的生成方法、装置、设备及存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006066322A1 (en) * 2004-12-21 2006-06-29 Emue Holdings Pty Ltd Authentication device and/or method
CN101345898A (zh) * 2007-07-11 2009-01-14 北京方维银通科技有限公司 电子凭证支付平台、系统以及方法
CN101482963A (zh) * 2009-02-26 2009-07-15 北控易码通(北京)科技有限公司 业务数据处理平台、系统和方法
CN102637275A (zh) * 2012-02-28 2012-08-15 刘杨志 一种基于物联网的安全购物方法及系统
CN102739397A (zh) * 2011-03-31 2012-10-17 汉王科技股份有限公司 一种电子工单的加密、校验方法及装置
CN103106607A (zh) * 2012-08-22 2013-05-15 杨磊 金融凭证处理系统及其方法
CN103226778A (zh) * 2013-03-21 2013-07-31 刘婷 电子凭证获取、分发方法及智能终端、广告机
CN106372937A (zh) * 2016-08-31 2017-02-01 北京源泉信业科技项目管理有限公司 一种凭证发放系统和方法
CN106972918A (zh) * 2017-03-15 2017-07-21 中国工商银行股份有限公司 一种电子编码数据的生成方法、装置及验证方法
CN107181714A (zh) * 2016-03-09 2017-09-19 阿里巴巴集团控股有限公司 基于业务码的验证方法和装置、业务码的生成方法和装置
CN107481140A (zh) * 2017-07-24 2017-12-15 湖南搜云网络科技股份有限公司 凭证标识码处理方法及系统、服务器及存储介质
CN109829723A (zh) * 2017-11-21 2019-05-31 北京京东尚科信息技术有限公司 生成业务凭证的方法和装置
CN110349035A (zh) * 2019-05-30 2019-10-18 阿里巴巴集团控股有限公司 业务处理系统以及方法
CN111563741A (zh) * 2020-04-30 2020-08-21 中国银行股份有限公司 交易凭证生成方法、装置及系统
CN111723360A (zh) * 2019-03-18 2020-09-29 北京京东尚科信息技术有限公司 凭证码处理方法、装置及存储介质

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006066322A1 (en) * 2004-12-21 2006-06-29 Emue Holdings Pty Ltd Authentication device and/or method
CN101345898A (zh) * 2007-07-11 2009-01-14 北京方维银通科技有限公司 电子凭证支付平台、系统以及方法
CN101482963A (zh) * 2009-02-26 2009-07-15 北控易码通(北京)科技有限公司 业务数据处理平台、系统和方法
CN102739397A (zh) * 2011-03-31 2012-10-17 汉王科技股份有限公司 一种电子工单的加密、校验方法及装置
CN102637275A (zh) * 2012-02-28 2012-08-15 刘杨志 一种基于物联网的安全购物方法及系统
CN103106607A (zh) * 2012-08-22 2013-05-15 杨磊 金融凭证处理系统及其方法
CN103226778A (zh) * 2013-03-21 2013-07-31 刘婷 电子凭证获取、分发方法及智能终端、广告机
CN107181714A (zh) * 2016-03-09 2017-09-19 阿里巴巴集团控股有限公司 基于业务码的验证方法和装置、业务码的生成方法和装置
CN106372937A (zh) * 2016-08-31 2017-02-01 北京源泉信业科技项目管理有限公司 一种凭证发放系统和方法
CN106972918A (zh) * 2017-03-15 2017-07-21 中国工商银行股份有限公司 一种电子编码数据的生成方法、装置及验证方法
CN107481140A (zh) * 2017-07-24 2017-12-15 湖南搜云网络科技股份有限公司 凭证标识码处理方法及系统、服务器及存储介质
CN109829723A (zh) * 2017-11-21 2019-05-31 北京京东尚科信息技术有限公司 生成业务凭证的方法和装置
CN111723360A (zh) * 2019-03-18 2020-09-29 北京京东尚科信息技术有限公司 凭证码处理方法、装置及存储介质
CN110349035A (zh) * 2019-05-30 2019-10-18 阿里巴巴集团控股有限公司 业务处理系统以及方法
CN111563741A (zh) * 2020-04-30 2020-08-21 中国银行股份有限公司 交易凭证生成方法、装置及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866271A (zh) * 2022-03-15 2022-08-05 上海东普信息科技有限公司 电子凭证的生成方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
KR20100016579A (ko) 크리덴셜 배포를 위한 시스템 및 방법
CN108880812B (zh) 数据加密的方法和系统
CN111950030A (zh) 基于区块链的数据共享存储方法、终端设备和存储介质
CN107800716B (zh) 一种数据处理方法及装置
CN109660534B (zh) 基于多商户的安全认证方法、装置、电子设备及存储介质
CN111369236A (zh) 一种应用于区块链的数据管理方法和装置
CN111859435B (zh) 一种数据安全处理方法及装置
CN116383867A (zh) 一种数据查询方法、装置、电子设备及计算机可读介质
CN115276978A (zh) 一种数据处理方法以及相关装置
CN112004201A (zh) 一种短信的发送方法、装置及计算机系统
CN110022207B (zh) 密钥管理及处理数据的方法、装置、设备和计算机可读介质
CN113762958A (zh) 一种生成电子凭证的方法和装置
CN112953716A (zh) 一种兑换码生成及其验证方法和装置
CN111181920A (zh) 一种加解密的方法和装置
CN116707778A (zh) 数据混合加密传输方法、装置和电子设备
US20200145200A1 (en) Attribute-based key management system
CN107707528B (zh) 一种用户信息隔离的方法和装置
CN113992345B (zh) 网页敏感数据加解密方法、装置、电子设备及存储介质
KR102391952B1 (ko) 암호화 분산 처리 시스템, 장치 또는 이를 위한 방법
CN104868994A (zh) 一种协同密钥管理的方法、装置及系统
CN115567263A (zh) 一种数据传输管理的方法、数据处理的方法和装置
KR102070821B1 (ko) 결제 처리 대행 서비스 장치 및 그 동작 방법
CN113761566A (zh) 一种数据处理方法和装置
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN115086428B (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