1.本发明涉及大数据数据处理技术领域,尤其涉及一种
报文加密方法、报文解密方法、装置和程序产品。
背景技术:
2.现有技术中银行与第三方商户的关联更加紧密,
用户通过在第三方商户侧进行产品购买,第三方商户通过指定设备接入银行侧系统,以实现产品的支付功能。
3.但是目前银行业务通常只服务于行内系统,市场上的第三方想要接入银行系统,只能采用所要接入银行的全套标准模式进行开发,用户需要开发的业务逻辑较多,而且需要采购行内指定设备,接入成本过高。并且通常采用的是将交易数据进行编码后直接与银行系统进行数据交互,因此在数据交互过程中会存在数据泄露攻击等风险。
技术实现要素:
4.本发明提供了一种报文加密方法、报文解密方法、装置和程序产品,以解决第三方接入银行系统所造成的接入成本高和数据泄露的风险。
5.根据本发明的一方面,提供了一种报文加密方法,应用于终端,包括:获取用户原始请求报文,
所述原始用户请求报文中包含共有请求
参数、特有请求参数和用户标识;
6.对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据;
7.对所述加密数据进行二级加密获取签名值;
8.将所述加密数据、所述签名值和所述用户标识进行组装生成加密请求报文,并将所述加密请求报文发送给服务器的报文通信专用接口。
9.根据本发明的另一方面,提供了一种报文解密方法,应用于服务器,包括:通过报文通信专用接口接收用户终端发送的加密请求报文,所述加密报文请求中包含加密数据、签名值和用户标识;
10.根据所述用户标识对用户进行身份认证获取认证结果;
11.当所述认证结果为认证通过时对所述签名值进行验签,获取加密请求报文的修改状态;
12.当所述修改状态为未被修改时,则对所述加密数据进行解密获取用户原始请求报文。
13.根据本发明的另一方面,提供了一种报文加密装置,包括:
14.原始请求报文获取模块,用于获取用户原始请求报文,所述原始用户请求报文中包含共有请求参数、特有请求参数和用户标识;
15.加密数据获取模块,用于对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据;
16.签名值获取模块,用于对所述加密数据进行二级加密获取签名值;
17.加密请求报文发送模块,用于将所述加密数据、所述签名值和所述用户标识进行
组装生成加密请求报文,并将所述加密请求报文发送给服务器的报文通信专用接口。
18.根据本发明的另一方面,提供了一种报文解密装置,包括:
19.加密请求报文接收模块,用于通过报文通信专用接口接收用户终端发送的加密请求报文,所述加密报文请求中包含加密数据、签名值和用户标识;
20.身份认证模块,用于根据所述用户标识对用户进行身份认证获取认证结果;
21.签名值验签模块,用于当所述认证结果为认证通过时对所述签名值进行验签,获取加密请求报文的修改状态;
22.原始请求报文获取模块,用于当所述修改状态为未被修改时,则对所述加密数据进行解密获取用户原始请求报文。
23.根据本发明的另一方面,提供了一种终端,所述终端包括:
24.至少一个处理器;以及
25.与所述至少一个处理器通信连接的存储器;其中,
26.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的报文加密方法。
27.根据本发明的另一方面,提供了一种服务器,所述服务器包括:
28.至少一个处理器;以及
29.与所述至少一个处理器通信连接的存储器;其中,
30.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的报文解密方法。
31.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的报文加密方法或报文解密方法。
32.根据本发明的另一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本发明任一实施例所述的报文加密方法或报文解密方法。
33.本发明实施例的技术方案,通过用户侧终端对用户原始请求报文进行二级加密获取加密请求报文,从而保障了业务数据的安全性,避免了数据泄露攻击的风险,同时将加密请求报文发送给报文通信专用接口,由于报文通信专用接口具有对各终端所发送的不同格式报文的识别功能,因此无需用户侧购买专用设备与行内服务器进行接入,从而减少了用户侧的接入成本。
34.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
35.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
36.图1是根据本发明实施例提供的一种报文加密方法的流程图一;
37.图2是根据本发明实施例提供的一种报文加密方法的流程图二;
38.图3是根据本发明实施例提供的一种报文解密方法的流程图一;
39.图4是根据本发明实施例提供的一种报文解密方法的流程图二;
40.图5是根据本发明实施例提供的一种报文加密装置的结构示意图;
41.图6是根据本发明实施例提供的一种报文解密装置的结构示意图;
42.图7是根据本发明实施例提供的一种终端的结构示意图;
43.图8是根据本发明实施例提供的一种服务器的结构示意图。
具体实施方式
44.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
45.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
46.图1为本发明实施例提供了一种报文加密方法的流程图一,本实施例可适用于对报文进行加密的情况,该方法可以由报文加密装置来执行,该装置可以采用硬件和/或软件的形式实现。如图1所示,该方法包括:
47.步骤s101,获取用户原始请求报文,原始用户请求报文中包含共有请求参数、特有请求参数和用户标识。
48.具体的说,本实施方式中的终端具体是商户所持有的终端,并且可以是自己持有的也可以是从银行侧所关联的,本实施方式中并不对终端的具体型号进行限定。当第三方商户需要通过终端进行产品交易时,具体可以触发获取用户原始请求报文,而在原始请求报文中具体包括共有请求参数、特有请求参数和用户标识,其中,共有请求参数包括交易码、版本、终端标识和请求事项;特有请求参数包括:用户账号、用户支付数值和第三方账号。当然,本实施方式中仅是举例说明,而并不对原始用户请求报文中所包含的具体参数内容进行限定。
49.步骤s102,对共有请求参数和特有请求参数进行一级加密获取加密数据。
50.具体的说,本实施方式中会对特有请求参数进行处理,获取处理后的特有请求参数,其中,处理具体包括编码处理或加密处理,本实施方式中并不限定对特有请求参数的具
体处理方式,并且会将处理后的特有请求参数和共有请求参数进行拼接,并对拼接结果采用sm4算法进行一级加密获取加密数据。当然,本实施方式中仅是以sm4算法为例进行说明,而并不对一级加密所采用的具体算法进行限定。通过对用户原始请求参数中的特有请求参数进行编码后,再将编码后的特有请求参数和共有请求参数进行一级加密,可以进一步保证用户原始请求报文的安全性。
51.步骤s103,对加密数据进行二级加密获取签名值。
52.可选的,对加密数据进行二级加密获取签名值,包括:将加密数据采用sm2算法进行二级加密获取签名值。本实施方式在通过sm4算法进行一级加密获取到加密数据之后,还会对加密数据采用sm2算法进行二级加密获取签名值,通过签名值可以便于银行侧的服务器对加密数据进行验签,以确定加密数据在传输过程中是否出现修改的情况,因此通过二级加密获取签名值,可以进一步保证用户原始请求报文的安全性。当然,本实施方式中是仅是以sm2算法为例进行说明,而并不对二级加密所采用的具体算法进行限定。
53.步骤s104,将加密数据、签名值和用户标识进行组装生成加密请求报文,并将加密请求报文发送给服务器的报文通信专用接口。
54.可选的,将加密数据、签名值和用户标识进行组装生成加密请求报文,并将加密请求报文发送给服务器的报文通信专用接口,包括:将加密数据、签名和用户标识按照指定顺序进行组装生成加密请求报文;将加密请求报文发送给服务器的报文通信专用接口,其中,报文通信专用接口包括servlet接口。
55.具体的说,由于本实施方式的银行侧服务器会创建报文通信专用接口,例如servlet接口,通过所创建的servlet接口可以直接对接商户终端,并获取终端所发送的信息,而并不对终端的型号或类型进行限制,因此减少了商户侧的接入成本。并且具体是将加密数据、签名值和用户标识按照指定顺序进行组装生成加密请求报文,本实施方式中并不限定各组装元素的先后排列顺序,在完成组装后将加密请求报文发送给服务器的servlet接口中,从而实现将用户原始请求报文进行二级加密后通过报文通信专用接口发送给银行侧服务器。
56.需要说明的是,本实施方式中通过对用户原始请求报文分别进行base64编码、sm4算法以及sm2算法进行两级加密,从而保证了用户原始请求报文的安全性,并且可以将所获取的加密请求报文直接发送给服务器的报文通信专用接口,由于在报文通信专用接口中配置有终端接入的通用处理逻辑,因此商户侧的终端无需进行额外程序的修改,从而节省了商户侧的接入成本。
57.本实施方式,通过用户侧终端对用户原始请求报文进行二级加密获取加密请求报文,从而保障了业务数据的安全性,避免了数据泄露攻击的风险,同时将加密请求报文发送给报文通信专用接口,由于报文通信专用接口具有对各终端所发送的不同格式报文的识别功能,因此无需用户侧购买专用设备与行内服务器进行接入,从而减少了用户侧的接入成本。
58.图2为本发明实施例提供的一种报文加密方法的流程图二,本实施例中在对共有请求参数和特有请求参数进行一级加密获取加密数据之前,还包括对特有请求参数进行编码的过程,如图2所示,该方法包括:
59.步骤s201,获取用户原始请求报文,原始用户请求报文中包含共有请求参数、特有
请求参数和用户标识。
60.步骤s202,在特有请求参数中添加指定数量字节。
61.具体的说,本实施方式中在获取到用户原始请求报文后会在特有请求参数中添加指定数量字节,例如,可以预先获取配置文件,在配置文件中记载有所添加字节的内容以及具体数量,因此在提取出特有请求参数后可以参照配置文件的内容按照指定规则在特有请求参数中添加指定数量字节,例如,在特有请求参数前面添加22个字节,并且字节的类型具体可以是字母,本实施方式中并不对所添加字节的数量以及内容进行限定。由于特有请求参数对安全性的要求更高,因此通过在特有请求参数中添加指定数量字节,从而实现对特有请求参数的进一步保护。
62.步骤s203,将添加字节的特有请求参数采用base64算法进行编码获取编码参数。
63.其中,本实施方式中为了保证数据传输的安全性,还会将添加字节的特有请求参数采用base64算法进行编码获取编码参数,由于对特有请求参数的安全性要求更高,因此通过添加字节后再进行编码可以进一步保证特有请求参数的安全性。当然,本实施方式中仅是以base64算法为例进行说明,而在实际应用中并不对编码时所采用的具体算法进行限定。
64.步骤s204,对共有请求参数和编码参数进行一级加密获取加密数据。
65.可选的,对共有请求参数和特有请求参数进行一级加密获取加密数据,包括:将编码参数和共有请求参数进行拼接获取拼接参数;将拼接参数采用sm4算法进行一级加密获取加密数据。
66.其中,在获取到特有请求参数所对应的编码参数之后,可以将编码参数和共有请求参数进行拼接获取拼接参数,具体可以是编码参数在前,请求参数在后,或者是请求参数在前,编码参数在后的顺序进行拼接,本实施方式中并不对拼接的具体方式进行限定,并且在获取到拼接参数之后,可以将拼接参数采用sm4算法进行一级加密获取加密数据。当然,本实施方式中仅是以sm4算法为例进行说明,而并不对一级加密所采用的具体算法进行限定。通过对用户原始请求参数中的特有请求参数进行编码,再将编码后的特有请求参数和共有请求参数进行一级加密,可以进一步保证用户原始请求报文的安全性。
67.步骤s205,对加密数据进行二级加密获取签名值。
68.步骤s206,将加密数据、签名值和用户标识进行组装生成加密请求报文,并将加密请求报文发送给服务器的报文通信专用接口。
69.本实施方式,通过用户侧终端对用户原始请求报文进行二级加密获取加密请求报文,从而保障了业务数据的安全性,避免了数据泄露攻击的风险,同时将加密请求报文发送给报文通信专用接口,由于报文通信专用接口具有对各终端所发送的不同格式报文的识别功能,因此无需用户侧购买专用设备与行内服务器进行接入,从而减少了用户侧的接入成本。并且在一级加密之前通过对原始请求报文中的特有请求参数添加指定数量字节之后进行编码,可以进一步保证用户原始请求报文的安全性。
70.图3为本发明实施例提供的一种报文解密方法的流程图一,本实施例可适用于对加密报文进行解密的情况,该方法可以由报文解密装置来执行,该装置可以采用硬件和/或软件的形式实现。如图3所示,该方法包括:
71.步骤s301,通过报文通信专用接口接收用户终端发送的加密请求报文,加密报文
请求中包含加密数据、签名值和用户标识。
72.可选的,通过报文通信专用接口接收用户终端发送的加密请求报文之前,还包括:接收接口创建指令;根据接口创建指令创建报文通信专用接口。
73.其中,报文通信专用接口可以是servlet接口,通过所创建的servlet接口可以直接对接商户终端,并获取终端所发送的信息,由于在报文通信专用接口中配置有终端接入的通用处理逻辑,因此商户侧的终端无需进行额外程序的修改,从而节省了商户侧的接入成本。
74.步骤s302,根据用户标识对用户进行身份认证获取认证结果。
75.可选的,根据用户标识对用户进行身份认证获取认证结果,包括:
76.将用户标识与用户注册列表进行对比,其中,用户注册列表中包含注册用户标识;判断在用户注册列表中是否包含与用户标识匹配的注册用户标识,若是,则确定认证结果为认证通过,否则确定认证结果为认证未通过。
77.具体的说,由于加密报文请求中包含加密数据、签名值和用户标识等相关信息,为了保障服务器中相关系统的安全性,避免非法用户的入侵,会根据加密报文中所包含的用户标识对用户进行身份认证,具体是将用户标识与用户注册列表进行对比,而在注册列表中包含之前在银行侧服务器中进行注册的用户,因此当确定在用户注册列表中包含与用户标识匹配的注册用户标识时,此时确定认证通过,即发送加密请求报文的用户为合法用户,服务器系统不存在非法入侵的风险;但是当确定用户注册列表中不包含与用户标识匹配的注册用户标识时,则确定在用户注册列表中不包含与用户标识匹配的注册用户标识,此时确定认证未通过,即发送加密请求报文的用户为非法用户,服务系统存在非法入侵的风险。并且在确定认证未通过时,会生成身份认证提示,例如,“当前用户身份认证不通过,请注意系统安全”,以供银行侧及时进行服务器系统安全防护。
78.步骤s303,当认证结果为认证通过时对签名值进行验签,获取加密请求报文的修改状态。
79.可选的,当认证结果为认证通过时对签名值进行验签,获取加密请求报文的修改状态,包括:当认证结果为认证通过时根据加密数据获取服务器侧的签名值;判断服务器侧的签名值和终端侧的签名值是否相同,若是,则确定加密请求报文的修改状态为未被修改,否则,确定加密请求报文的修改状态为已被修改。
80.具体的说,当通过对用户标识进行身份认证确定用户为合法用户时,会对加密请求报文中的签名值进行验签,通过对签名值进行验签可以确定加密数据在由商户侧终端到银行侧服务器的传输过程中是否出现修改的情况,即确定是否被非法篡改过,如果确定被非法篡改过则所获取的加密请求报文为失效报文,服务器会将失效的加密请求报文进行丢弃。
81.其中,在进行验签时服务器会根据加密请求报文中的加密数据生成服务器侧的新的签名值,服务器会将自己所生成的新的签名值与从终端侧所接收的签名值进行对比,如果两个签名值相同,则可以确定加密请求报文未被修改,如果两者不相同,则可以确定加密请求报文已经被修改,此时的加密请求报文为失效报文,需要进行丢弃。因此本实施方式中在身份认证之后进一步进行验签,可以保证所接收数据的安全性。
82.步骤s304,当修改状态为未被修改时,则对加密数据进行解密获取用户原始请求
报文。
83.可选的,对加密数据进行解密获取用户原始请求报文,包括:对加密数据采用sm4算法进行解密获取拼接参数,其中,拼接参数中包含编码参数和共有请求参数;对编码参数采用base64算法进行解码获取特有请求参数;根据共有请求参数和特有请求参数确定用户原始请求报文。
84.具体的说,在本实施方式中当通过验签确定加密数据未被修改时,说明加密请求报文在传输过程中是安全传输的,未出现被非法篡改的情况,此时则可以对加密数据按照终端加密的逆过程进行解密,具体是对加密数据采用sm4进行解密获取包含编码参数和共有请求参数,由于仅仅根据编码参数还无法获取到原始请求报文的具体信息,因此此时会对编码参数采用base64算法进行解码获取特有请求参数,从而根据特有请求参数和共有请求参数就可以实现对用户原始请求报文的还原解密。
85.需要说明的是,当确定特有请求参数前面被添加指定数量字节时,还需要将特有请求参数前面所添加的指定数量的字节进行删除,以还原出原始的特有请求参数。
86.值得一提的是,本实施方式中的服务器在通过二层解密和解码之后,获取到原始请求报文,此时会根据原始请求报文中所包含的共有请求参数和特有请求参数执行相应的业务,并在业务执行完之后生成响应报文,并且将响应报文进行加密后再反馈给商户侧的终端。关于响应报文的加密方式与终端侧原始请求报文的加密方式大致相同,本实施方式中不再进行赘述。
87.本实施方式中,通过银行侧服务器基于报文通信专用接口获取到加密请求报文之后,通过对加密请求报文中的用户标识和签名值进行验签,确定用户为合法用户并且加密数据未被篡改的情况下对加密数据进行解密,从而保证了在尽量减少用户侧接入成本的情况下,保证了用户侧和银行侧数据交互的安全性。
88.图4为本发明实施例提供的一种报文解密方法的流程图二,本实施例中在通过报文通信专用接口接收用户终端发送的加密请求报文之前,还包括创建报文通信专用接口的操作,如图4所示,该方法包括:
89.步骤s401,接收接口创建指令,根据接口创建指令创建报文通信专用接口。
90.具体的说,本实施方式中的服务器具体是位于银行侧,并用于处理银行侧的相关业务,同时还可以接收商户侧持有终端所发送的业务信息,银行侧服务器会接收运维人员的接口创建指令,在创建指令中包含报文通信专用接口的通用处理逻辑,服务器会根据接口创建指令创建出报文通信专用接口,例如servlet接口。报文通信专用接口具有对其它终端报文的识别功能,从而对于终端所发送的不同格式的报文都能够进行有效识别,因此可以通过所创建的servlet接口可以直接对接商户终端,并获取终端所发送的信息,由于在报文通信专用接口中配置有终端接入的通用处理逻辑,因此商户侧的终端无需进行额外程序的修改,从而节省了商户侧的接入成本。
91.步骤s402,通过报文通信专用接口接收用户终端发送的加密请求报文,加密报文请求中包含加密数据、签名值和用户标识。
92.步骤s403,根据用户标识对用户进行身份认证获取认证结果。
93.步骤s404,当认证结果为认证通过时对签名值进行验签,获取加密请求报文的修改状态。
94.步骤s405,当修改状态为未被修改时,则对加密数据进行解密获取用户原始请求报文。
95.本实施方式中,通过银行侧服务器基于报文通信专用接口获取到加密请求报文之后,通过对加密请求报文中的用户标识和签名值进行验签,确定用户为合法用户并且加密数据未被篡改的情况下对加密数据进行解密,从而保证了在尽量减少用户侧接入成本的情况下,保证了用户侧和银行侧数据交互的安全性。
96.图5为本发明实施例三提供的一种报文加密装置的结构示意图。如图3所示,该装置包括:原始请求报文获取模块310、加密数据获取模块320、签名值获取模块330和加密请求报文发送模块340。
97.原始请求报文获取模块310,用于获取用户原始请求报文,原始用户请求报文中包含共有请求参数、特有请求参数和用户标识;
98.加密数据获取模块320,用于对共有请求参数和特有请求参数进行一级加密获取加密数据;
99.签名值获取模块330,用于对加密数据进行二级加密获取签名值;
100.加密请求报文发送模块340,用于将加密数据、签名值和用户标识进行组装生成加密请求报文,并将加密请求报文发送给服务器的报文通信专用接口。
101.可选的,共有请求参数包括交易码、版本、终端标识和请求事项;特有请求参数包括:用户账号、用户支付数值和第三方账号。
102.可选的,装置还包括编码参数获取模块,用于在特有请求参数中添加指定数量字节;
103.将添加字节的特有请求参数采用base64算法进行编码获取编码参数。
104.可选的,加密数据获取模块,用于将编码参数和共有请求参数进行拼接获取拼接参数;
105.将拼接参数采用sm4算法进行一级加密获取加密数据。
106.可选的,签名值获取模块,用于将加密数据采用sm2算法进行二级加密获取签名值。
107.可选的,加密请求报文发送模块,用于将加密数据、签名和用户标识按照指定顺序进行组装生成加密请求报文;
108.将加密请求报文发送给服务器的报文通信专用接口,其中,报文通信专用接口包括servlet接口。
109.本发明实施例所提供的报文加密装置可执行本发明任意实施例所提供的报文加密方法,具备执行方法相应的功能模块和有益效果。
110.图6为本发明实施例提供的一种报文解密装置的结构示意图。如图6所示,该装置包括:加密请求报文接收模块410、身份认证模块420、签名值验签模块430和原始请求报文获取模块440。
111.加密请求报文接收模块410,用于通过报文通信专用接口接收用户终端发送的加密请求报文,加密报文请求中包含加密数据、签名值和用户标识;
112.身份认证模块420,用于根据用户标识对用户进行身份认证获取认证结果;
113.签名值验签模块430,用于当认证结果为认证通过时对签名值进行验签,获取加密
请求报文的修改状态;
114.原始请求报文获取模块440,用于当修改状态为未被修改时,则对加密数据进行解密获取用户原始请求报文。
115.可选的,装置还包括接口创建模块,用于接收接口创建指令;
116.根据接口创建指令创建报文通信专用接口。
117.可选的,身份认证模块,用于将用户标识与用户注册列表进行对比,其中,用户注册列表中包含注册用户标识;
118.判断在用户注册列表中是否包含与用户标识匹配的注册用户标识,若是,则确定认证结果为认证通过,否则确定认证结果为认证未通过。
119.可选的,签名值验签模块,用于当认证结果为认证通过时根据加密数据获取服务器侧的签名值;
120.判断服务器侧的签名值和终端侧的签名值是否相同,若是,则确定加密请求报文的修改状态为未被修改,否则,确定加密请求报文的修改状态为已被修改。
121.可选的,原始请求报文获取模块,用于对加密数据采用sm4算法进行解密获取拼接参数,其中,拼接参数中包含编码参数和共有请求参数;
122.对编码参数采用base64算法进行解码获取特有请求参数;
123.根据共有请求参数和特有请求参数确定用户原始请求报文。
124.图7示出了可以用来实施本发明的实施例的终端10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
125.如图7所示,终端10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储终端10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
126.终端10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许终端10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
127.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如报文加密方法。
128.在一些实施例中,报文加密方法可被实现为计算机程序,其被有形地包含于计算
机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到终端10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的报文加密方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行报文加密方法。
129.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
130.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
131.图8示出了可以用来实施本发明的实施例的服务器20的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
132.如图8所示,服务器20包括至少一个处理器21,以及与至少一个处理器21通信连接的存储器,如只读存储器(rom)22、随机访问存储器(ram)23等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器21可以根据存储在只读存储器(rom)22中的计算机程序或者从存储单元28加载到随机访问存储器(ram)23中的计算机程序,来执行各种适当的动作和处理。在ram 23中,还可存储服务器20操作所需的各种程序和数据。处理器21、rom 22以及ram 23通过总线24彼此相连。输入/输出(i/o)接口25也连接至总线24。
133.服务器20中的多个部件连接至i/o接口25,包括:输入单元26,例如键盘、鼠标等;输出单元27,例如各种类型的显示器、扬声器等;存储单元28,例如磁盘、光盘等;以及通信单元29,例如网卡、调制解调器、无线通信收发机等。通信单元29允许服务器20通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
134.处理器21可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器21的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器21执行上文所描述的各个方法和处理,例如报文加密方法。
135.在一些实施例中,报文加密方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元28。在一些实施例中,计算机程序的部分或者全部可以经由rom 22和/或通信单元29而被载入和/或安装到服务器20上。当计算机程序加载到ram 23并由处理器21执行时,可以执行上文描述的报文加密方法的一个或多个步骤。备选地,在其他实施例中,处理器21可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行报文加密方法。
136.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
137.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
138.本发明实施例还提供了一种计算机可读存储介质,包括计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现如本技术任一实施例所提供的报文加密方法或报文解密方法。
139.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
140.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
141.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
142.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
143.本发明实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现如本技术任一实施例所提供的报文加密方法或报文解密方法。
144.计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
145.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
技术特征:
1.一种报文加密方法,其特征在于,应用于终端,包括:获取用户原始请求报文,所述原始用户请求报文中包含共有请求参数、特有请求参数和用户标识;对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据;对所述加密数据进行二级加密获取签名值;将所述加密数据、所述签名值和所述用户标识进行组装生成加密请求报文,并将所述加密请求报文发送给服务器的报文通信专用接口。2.根据权利要求1所述的方法,其特征在于,所述共有请求参数包括交易码、版本、终端标识和请求事项;所述特有请求参数包括:用户账号、用户支付数值和第三方账号。3.根据权利要求1所述的方法,其特征在于,所述对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据之前,还包括:在所述特有请求参数中添加指定数量字节;将添加字节的所述特有请求参数采用base64算法进行编码获取编码参数。4.根据权利要求3所述的方法,其特征在于,所述对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据,包括:将所述编码参数和所述共有请求参数进行拼接获取拼接参数;将所述拼接参数采用sm4算法进行一级加密获取加密数据。5.根据权利要求1所述的方法,其特征在于,所述对所述加密数据进行二级加密获取签名值,包括:将所述加密数据采用sm2算法进行二级加密获取签名值。6.根据权利要求1所述的方法,其特征在于,所述将所述加密数据、所述签名值和所述用户标识进行组装生成加密请求报文,并将所述加密请求报文发送给服务器的报文通信专用接口,包括:将所述加密数据、所述签名和所述用户标识按照指定顺序进行组装生成所述加密请求报文;将所述加密请求报文发送给所述服务器的报文通信专用接口,其中,所述报文通信专用接口包括servlet接口。7.一种报文解密方法,其特征在于,应用于服务器,包括:通过报文通信专用接口接收用户终端发送的加密请求报文,所述加密报文请求中包含加密数据、签名值和用户标识;根据所述用户标识对用户进行身份认证获取认证结果;当所述认证结果为认证通过时对所述签名值进行验签,获取加密请求报文的修改状态;当所述修改状态为未被修改时,则对所述加密数据进行解密获取用户原始请求报文。8.根据权利要求7所述的方法,其特征在于,所述通过报文通信专用接口接收用户终端发送的加密请求报文之前,还包括:接收接口创建指令;根据所述接口创建指令创建所述报文通信专用接口。
9.根据权利要求7所述的方法,其特征在于,所述根据所述用户标识对用户进行身份认证获取认证结果,包括:将所述用户标识与用户注册列表进行对比,其中,所述用户注册列表中包含注册用户标识;判断在所述用户注册列表中是否包含与所述用户标识匹配的注册用户标识,若是,则确定所述认证结果为认证通过,否则确定所述认证结果为认证未通过。10.根据权利要求7所述的方法,其特征在于,所述当所述认证结果为认证通过时对所述签名值进行验签,获取加密请求报文的修改状态,包括:当所述认证结果为认证通过时根据所述加密数据获取服务器侧的签名值;判断所述服务器侧的签名值和所述终端侧的签名值是否相同,若是,则确定所述加密请求报文的修改状态为未被修改,否则,确定所述加密请求报文的修改状态为已被修改。11.根据权利要求7所述的方法,其特征在于,所述对所述加密数据进行解密获取用户原始请求报文,包括:对所述加密数据采用sm4算法进行解密获取拼接参数,其中,所述拼接参数中包含编码参数和共有请求参数;对所述编码参数采用base64算法进行解码获取特有请求参数;根据所述共有请求参数和所述特有请求参数确定所述用户原始请求报文。12.一种报文加密装置,其特征在于,包括:原始请求报文获取模块,用于获取用户原始请求报文,所述原始用户请求报文中包含共有请求参数、特有请求参数和用户标识;加密数据获取模块,用于对所述共有请求参数和所述特有请求参数进行一级加密获取加密数据;签名值获取模块,用于对所述加密数据进行二级加密获取签名值;加密请求报文发送模块,用于将所述加密数据、所述签名值和所述用户标识进行组装生成加密请求报文,并将所述加密请求报文发送给服务器的报文通信专用接口。13.一种报文解密装置,其特征在于,包括:加密请求报文接收模块,用于通过报文通信专用接口接收用户终端发送的加密请求报文,所述加密报文请求中包含加密数据、签名值和用户标识;身份认证模块,用于根据所述用户标识对用户进行身份认证获取认证结果;签名值验签模块,用于当所述认证结果为认证通过时对所述签名值进行验签,获取加密请求报文的修改状态;原始请求报文获取模块,用于当所述修改状态为未被修改时,则对所述加密数据进行解密获取用户原始请求报文。14.一种终端,其特征在于,所述终端包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
15.一种服务器,其特征在于,所述服务器包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求7-11中任一项所述的方法。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的报文加密方法,或者实现权利要求7-11中任一项所述的报文解密方法。17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-6中任一项所述的报文加密方法,或者实现权利要求7-11中任一项所述的报文解密方法。
技术总结
本发明公开了一种报文加密方法、报文解密方法、装置和程序产品,涉及大数据处理技术领域,包括:获取用户原始请求报文,其中,原始用户请求报文中包含共有请求参数、特有请求参数和用户标识;对共有请求参数和特有请求参数进行一级加密获取加密数据;对加密数据进行二级加密获取签名值;将加密数据、签名值和用户标识进行组装生成加密请求报文,并将加密请求报文发送给服务器。通过用户侧终端对用户原始请求报文进行二级加密获取加密请求报文,从而保障了业务数据的安全性,避免了数据泄露攻击的风险,同时将加密请求报文发送给报文通信专用接口,而无需购买专用设备进行接入,从而减少了接入成本。了接入成本。了接入成本。
技术研发人员:
廖京威 叶万军 刘昊晟
受保护的技术使用者:
建信金融科技有限责任公司
技术研发日:
2022.08.26
技术公布日:
2022/11/25