一种报文处理方法、装置、服务器及存储介质转让专利

申请号 : CN201911175322.9

文献号 : CN111182025B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘鹏

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种报文处理方法、装置、服务器及存储介质,其中,报文处理方法包括:接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;根据被调用的外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括外部业务接口的接口标识以及加密签名规则;根据所述加密签名规则对报文信息进行加密处理和/或签名处理,得到目标报文信息;向业务接口调用服务器返回所述目标报文信息,以使业务接口调用服务器通过调用所述外部业务接口将目标报文信息发送给外部业务接口对应的外部业务系统。本发明提高了报文处理效率以及外部业务接口的接入效率。

权利要求 :

1.一种报文处理方法,其特征在于,所述方法包括:接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;

根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括所述外部业务接口的接口标识以及加密签名规则;

根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息;

向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业务接口对应的外部业务系统。

2.根据权利要求1所述的报文处理方法,其特征在于,所述方法还包括建立预置加密签名配置库;所述建立预置加密签名配置库包括:响应于新增加密签名配置请求,展示配置界面;所述配置界面包括:外部业务接口的接口标识输入区域以及加密签名规则输入区域;

获取通过所述配置界面输入的加密签名配置信息;所述加密签名配置信息包括:用户输入的外部业务接口的接口标识以及用户输入的加密签名规则。

3.根据权利要求1所述的报文处理方法,其特征在于,所述加密签名规则包括加密规则,所述加密规则包括加密算法标识和加密对象;

所述根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息包括:

判断内存的预置算法库中是否存储有与所述加密算法标识相匹配的加密算法;

在判断的结果为是时,根据所述加密对象确定所述报文信息中的待加密内容;

执行所述加密算法对所述待加密内容进行加密处理,得到加密报文;

根据所述加密报文生成所述目标报文信息。

4.根据权利要求3所述的报文处理方法,其特征在于,所述加密签名规则包括签名规则,所述签名规则包括签名算法标识和签名对象;

所述根据所述加密报文生成所述目标报文信息包括:判断所述内存的预置算法库中是否存储有与所述签名算法标识相匹配的签名算法;

在判断的结果为是时,根据所述签名对象确定所述加密报文中的待签名内容;

执行所述签名算法对所述待签名内容进行签名处理,得到签名字段;

根据所述签名字段生成所述目标报文信息。

5.根据权利要求4所述的报文处理方法,其特征在于,所述根据所述签名字段生成所述目标报文信息包括:

获取所述报文信息、所述加密报文和所述签名字段;

对所述报文信息、加密报文和签名字段进行拼接,得到所述目标报文信息。

6.根据权利要求4所述的报文处理方法,其特征在于,所述方法还包括:当所述内存的预置算法库中没有与所述加密算法标识相匹配的加密算法时,输出第一提示信息;所述第一提示信息用于提示当前不支持所述加密算法;

当所述内存的预置算法库中没有与所述签名算法标识相匹配的签名算法时,输出第二提示信息;所述第二提示信息用于提示当前不支持所述签名算法。

7.根据权利要求6所述的报文处理方法,其特征在于,所述方法还包括:获取输入的所述加密算法的算法逻辑,将所述加密算法的算法逻辑存入所述内存的预置算法库中;和/或,

获取输入的所述签名算法的算法逻辑,将所述签名算法的算法逻辑存入所述内存的预置算法库中。

8.一种报文处理装置,其特征在于,所述装置包括:接收模块,用于接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;

第一确定模块,用于根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括所述外部业务接口的接口标识以及加密签名规则;

加密签名模块,用于根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息;

返回模块,用于向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业务接口对应的外部业务系统。

9.一种服务器,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现如权利要求1~7中任一项所述的报文处理方法。

10.一种计算机可读存储介质,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如权利要求1~7任一项所述的报文处理方法。

说明书 :

一种报文处理方法、装置、服务器及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,特别涉及一种报文处理方法、装置、服务器及存储介质。

背景技术

[0002] 随着人工智能技术的发展,越来越多的业务可以在智能终端上完成,例如通过智能终端中的指定应用实现用户就医时的医保支付功能。在该功能的实现过程中,涉及到后
台提供的医保卡管理及支付服务,该服务需要同全国各地的人社系统(即人力资源和社会
保障系统)对接,为用户提供统一的医保卡绑定、医保支付的操作界面。
[0003] 可见,医保卡管理及支付服务需要调用多个地市的人社系统接口,涉及的接口数量多达几百个甚至更多,为了保证与接口交互的安全性,需要对传输的报文数据进行加密
以及签名处理。相关技术中,由于各地人社系统接口对可接收的报文的加密以及签名处理
都有各自的个性化要求,该服务的接入人员需要在本地针对每个合作的人社系统接口都编
写一个满足其要求的加密和签名处理代码逻辑,也就是说,N个接入的人社系统需要在本地
编写N个加密和签名处理代码逻辑,在接口调用时直接在本地运行相应的加密和签名处理
代码逻辑,从而导致接口接入效率的大大降低,而且由于加密和签名处理代码逻辑的编写
一般较复杂,增加了服务的出错概率,降低了服务系统运行的稳定性以及报文的处理效率,
并使得整个服务系统的维护难度大大增加。

发明内容

[0004] 为了解决现有技术的问题,本发明实施例提供了一种报文处理方法、装置、计算机设备及存储介质。所述技术方案如下:
[0005] 一方面,提供了一种报文处理方法,所述方法包括:
[0006] 接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;
[0007] 根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括所述外部业务接口的接
口标识以及加密签名规则;
[0008] 根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息;
[0009] 向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业务接口对应的外部
业务系统。
[0010] 另一方面,提供了一种报文处理装置,所述装置包括:
[0011] 接收模块,用于接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;
[0012] 第一确定模块,用于根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括所
述外部业务接口的接口标识以及加密签名规则;
[0013] 加密签名模块,用于根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息;
[0014] 返回模块,用于向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业务
接口对应的外部业务系统。
[0015] 可选的,所述装置还包括用于建立预置加密签名配置库的建立模块,所述建立模块包括:
[0016] 响应模块,用于响应于新增加密签名配置请求,展示配置界面;所述配置界面包括:外部业务接口的接口标识输入区域以及加密签名规则输入区域;
[0017] 第一获取模块,用于获取通过所述配置界面输入的加密签名配置信息;所述加密签名配置信息包括:用户输入的外部业务接口的接口标识以及用户输入的加密签名规则。
[0018] 可选的,所述加密签名规则包括加密规则,所述加密规则包括加密算法标识和加密对象;
[0019] 所述加密签名模块包括:
[0020] 第一判断模块,用于判断内存的预置算法库中是否存储有与所述加密算法标识相匹配的加密算法;
[0021] 第二确定模块,用于在第一判断模块判断的结果为是时,根据所述加密对象确定所述报文信息中的待加密内容;
[0022] 第一执行模块,用于执行所述加密算法对所述待加密内容进行加密处理,得到加密报文;
[0023] 第一生成模块,用于根据所述加密报文生成所述目标报文信息。
[0024] 可选的,所述加密签名规则包括签名规则,所述签名规则包括签名算法标识和签名对象;
[0025] 所述第一生成模块包括:
[0026] 第二判断模块,用于判断所述内存的预置算法库中是否存储有与所述签名算法标识相匹配的签名算法;
[0027] 第三确定模块,用于在第二判断模块判断的结果为是时,根据所述签名对象确定所述加密报文中的待签名内容;
[0028] 第二执行模块,用于执行所述签名算法对所述待签名内容进行签名处理,得到签名字段;
[0029] 第二生成模块,用于根据所述签名字段生成所述目标报文信息。
[0030] 可选的,所述第二生成模块包括:
[0031] 第二获取模块,用于获取所述报文信息、所述加密报文和所述签名字段;
[0032] 拼接模块,用于对所述报文信息、加密报文和签名字段进行拼接,得到所述目标报文信息。
[0033] 可选的,所述装置还包括:
[0034] 第一输出模块,用于在所述内存的预置算法库中没有所述加密算法时,输出第一提示信息;所述第一提示信息用于提示当前不支持所述加密算法;
[0035] 第二输出模块,用于在所述内存的预置算法库中没有所述签名算法时,输出第二提示信息;所述第二提示信息用于提示当前不支持所述签名算法。
[0036] 可选的,所述装置还包括:
[0037] 第三获取模块,用于获取输入的所述加密算法的算法逻辑,将所述加密算法的算法逻辑存入所述内存的预置算法库中;和/或,
[0038] 第四获取模块,用于获取输入的所述签名算法的算法逻辑,将所述签名算法的算法逻辑存入所述内存的预置算法库中。
[0039] 另一方面,提供了一种服务器,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并
执行以实现上述报文处理方法。
[0040] 另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实
现如上述的报文处理方法。
[0041] 本发明实施例通过接收业务接口调用服务器的报文信息,根据该报文信息中被调用的外部业务接口的接口标识确定与该报文信息相匹配的加密签名配置信息,进而根据配
置信息中的加密签名规则对报文信息进行加密和/或签名处理,得到目标报文信息,然后向
业务接口调用服务器返回该目标报文信息,如此,业务接口调用服务器可以通过调用外部
业务接口将该目标报文信息发送给对应的外部业务系统,可见,在上述技术方案中,将对报
文信息的加密签名处理从业务接口调用服务器剥离出来进行统一处理,并且在处理时基于
统一的预置加密签名配置库,通过加密签名配置信息即可确定相应的加密签名规则,不仅
提高了报文处理效率,而且无需针对每个外部业务接口都编写加密和签名处理代码逻辑,
有利于提高外部业务接口的接入效率,使得系统运行的稳定性得到保证,易于维护,可扩展
性强。

附图说明

[0042] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0043] 图1是本发明实施例提供的一种报文处理方法的系统架构示意图;
[0044] 图2是本发明实施例提供的一种报文处理方法的流程示意图;
[0045] 图3是本发明实施例提供的加密签名配置界面的一种可选界面示意图;
[0046] 图4是本发明实施例提供的根据加密签名规则对所述报文信息进行加密处理和/或签名处理得到目标报文信息的一种方法的流程示意图;
[0047] 图5是本发明实施例提供的根据加密签名规则对所述报文信息进行加密处理和/或签名处理得到目标报文信息的另一种方法的流程示意图;
[0048] 图6是本发明实施例提供的一种报文处理装置的结构示意图;
[0049] 图7是本发明实施例提供的一种服务器的硬件结构框图。

具体实施方式

[0050] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其
他实施例,都属于本发明保护的范围。
[0051] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限
于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产
品或设备固有的其它步骤或单元。
[0052] 现有技术中,医保卡管理及支付服务系统需要在接口调用服务器本地编写与被调用人社系统接口对应的加密和签名处理代码逻辑,通过该加密和签名处理代码逻辑对发送
给被调用的人社系统接口的报文信息进行加密和签名处理,而且对于每个接入到接口调用
服务器的人社系统接口均编写与其需求相对应的加密和签名处理代码逻辑,然而由于各个
加密算法、算法属性、签名算法、算法逻辑等都千差万别,从而使得现有技术的医保卡管理
及支付服务系统对于报文的处理效率较低,人社系统接口的接入效率低、系统维护难度大、
可扩展性以及运行稳定性差。
[0053] 基于此,本发明实施例提供了一种报文处理方法,该方法将对报文信息的加密签名处理从业务接口调用服务器剥离出来进行统一处理,并且在处理时基于统一的预置加密
签名配置库,通过加密签名配置信息确定相应的加密签名规则,进而基于加密签名规则对
报文信息进行加密和/或签名处理,不仅提高了报文处理效率,而且无需针对每个外部业务
接口都编写一个加密和签名处理代码逻辑,不仅提高了外部业务接口的接入效率,而且使
得系统运行的稳定性得到保证,易于维护,可扩展性强。
[0054] 请参阅图1,其所示为本发明实施例提供的一种报文处理方法的系统架构示意图,该系统可以包括客户端110,业务接口调用服务器120和加密签名服务器130。
[0055] 客户端110与业务接口调用服务器120之间,以及业务接口调用服务器120与加密签名服务器130之间均可以通过网络连接通信,该网络可以是有线网络,也可以是无线网
络。
[0056] 业务接口调用服务器120可以是一个独立运行的服务器,也可以是由多个服务器组成的服务器集群。加密签名服务器130可以是一个独立运行的服务器,也可以是由多个服
务器组成的服务器集群。
[0057] 其中,客户端110可以接收用户的业务请求,并将该业务请求对应的报文信息发送给业务接口调用服务器120。其中,报文信息是以一段约定格式(例如,XML、JSON等)编制的
承载业务信息的字节流,便于不同机构之间进行信息交互。本说明书实施例中,业务请求可
以但不限于包括医保卡管理(如绑定)请求、医保卡支付请求等,相应的,客户端110可以是
提供医保卡管理和支付功能的应用程序或者设备,该设备可以但不限于包括智能手机、台
式电脑、平板电脑、笔记本电脑等具有各种操作系统的硬件设备。
[0058] 业务接口调用服务器120可以接收客户端110发送的报文信息,解析报文信息,根据解析结果确定被调用的外部业务接口,其中,外部业务接口是外部业务系统的接口,本说
明书实施例中,该外部业务系统可以是如图1中所示的各地市的人社系统(即人力资源和社
会保障系统),相应的,外部业务接口是人社系统的接口。
[0059] 本说明书实施例中,业务接口调用服务器120接收到报文信息后,将该报文信息发送给加密签名服务器130,由加密签名服务器130对该报文信息进行加密和/或签名处理,然
后将处理后的报文信息返回给业务接口调用服务器120,由业务接口调用服务器120将该处
理后的报文信息通过相应被调用的外部业务接口发送给对应的外部业务系统。
[0060] 加密签名服务器130中维护有预置加密签名配置库131和预置算法库132,其中,预置算法库132中包括多个加密算法的算法逻辑,以及多个签名算法的算法逻辑。加密签名服
务器130对报文信息的处理基于上述的预置加密签名配置库131和预置算法库132,具体将
在本说明书实施例的后续部分进行详细介绍。
[0061] 接下来对本发明实施例提供的一种报文处理方法进行介绍。
[0062] 请参阅图2,其所示为本发明实施例提供的一种报文处理方法的流程示意图,该方法可以应用于图1中的加密签名服务器。需要说明的是,本说明书提供了如实施例或流程图
所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步
骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行
顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者
并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包
括:
[0063] S201,接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识。
[0064] 其中,外部业务接口为外部业务系统的接口,该外部业务系统可以是已接入业务接口调用服务器的人社系统。
[0065] 上述报文信息为需要发送给外部业务接口对应的外部业务系统的信息。在一个具体的应用场景下,报文信息可以是由医保卡管理及支付客户端在接收到用户关于医保卡管
理或者支付请求时发送给业务接口调用服务器的信息。
[0066] 外部业务接口的接口标识用于唯一标识一个外部业务接口,在上述医保卡管理及支付的应用场景中,外部业务接口的接口标识可以是该外部业务接口对应的人社系统的标
识,如可以是x省份x城市。以医保卡支付请求为例,客户端在接收到用户的医保卡支付请求
时,可以获取用户绑定的医保卡信息,该医保卡信息中包括对应人社系统的标识,客户端可
以根据该对应人社系统的标识生成报文信息,并将该报文信息发送给业务接口调用服务
器。
[0067] 具体的实施中,可以在业务接口调用服务器上部署网络后台服务,将该后台服务绑定加密签名服务器的地址标识,例如该地址标识可以包括IP地址(例如可以为10.2.2.2)
和端口(443),当业务接口调用服务器接收到报文信息时,就可以通过此地址标识向加密签
名服务器发送报文信息了。
[0068] S203,根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息。
[0069] 其中,所述加密签名配置信息包括所述外部业务接口的接口标识以及加密签名规则。
[0070] 本说明书实施例中,在加密签名服务器维护有预置加密签名配置库,该预置加密签名配置库包括多个加密签名配置信息,每个加密签名配置信息包括外部业务接口的接口
标识以及加密签名规则,也就是说,每个加密签名配置信息实质上为外部业务接口的接口
标识与加密签名规则的对应关系,其中,加密签名规则用于描述加密和/或签名处理采用的
具体规则,该具体规则可以但不限于包括加密算法标识、签名算法标识、加密对象、签名对
象、签名要求等等。
[0071] 基于以上描述,在步骤S203之前,本发明实施例的报文处理方法还可以包括建立预置加密签名配置库的步骤,具体可以包括:
[0072] (1)响应于新增加密签名配置请求,展示配置界面;该配置界面包括:外部业务接口的接口标识输入区以及加密签名规则输入区域。如图3所示为本发明实施例提供的加密
签名配置界面的一种可选界面示意图,其中,省份和城市对应的空白区域即为外部业务接
口的接口标识输入区域;加密报文、加密算法、签名报文、签名算法、签名字段排序、过滤空
字段以及签名key对应的空白区域即为加密签名规则输入区域。
[0073] (2)获取通过所述配置界面输入的加密签名配置信息;该加密签名配置信息包括:用户输入的外部业务接口的接口标识以及用户输入的加密签名规则。如图3所示,用户可以
直接在输入区域键入需要的内容,也可以基于输入区域提供的选取项选取需要的目标内容
进行填写,则配置界面的输入区域中填写或键入的内容即构成了一个加密签名配置信息。
[0074] 由此可见,本发明实施例中,当有新的外部业务系统需要接入到业务接口调用服务器时,只需根据该外部业务系统对应的接口标识以及对接收的报文信息的要求进行相应
的加密签名配置信息的配置即可,后续基于配置的加密签名配置信息进行报文信息的处理
即可满足要求,大大提高了外部业务系统的接入效率,同时也有利于提高报文信息的处理
效率。
[0075] 实际应用中,外部业务系统对接收的报文信息的要求可能会随着自身系统的升级而改变,例如,加密算法改变、签名算法改变等等。作为一个可选的实施方式,加密签名服务
器还可以响应于修改加密签名配置请求,展示修改界面,该修改界面包括待修改的加密签
名配置信息,具体的,该修改界面可以类似为图3的界面,然后根据该外部业务系统对应的
新要求对修改界面中的配置信息进行修改,具体的,可以获取通过修改界面输入的修改配
置信息,根据修改配置信息对待修改的加密签名配置信息进行更新,该修改配置信息可以
为加密签名规则所包含的任意信息。
[0076] S205,根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息。
[0077] 本说明书实施例中,加密签名服务器的内存中还维护有预置算法库,该预置算法库包括预先设置的多个加密算法的算法逻辑和多个签名算法的算法逻辑,其中,多个加密
算法可以但不限于包括对称加密算法如AES(aes‑128,aes‑256)算法、非对称加密算法如
RSA算法、分组加密算法如TEA/XTEA加密算法、公钥密码学标准PKCS(The Public‑Key 
Cryptography Standards)等等;多个签名算法可以但不限于包括消息摘要算法如MD5算
法、哈希算法如SHA1和SHA256、RSA算法、哈希运算消息认证码HMAC(Hash‑based Message 
Authentication Code)以及其它一些组合式的签名算法如RSA‑SHA1、RSA‑SHA256等等。
[0078] 作为一个可选的实施方式,加密签名规则可以包括加密规则,该加密规则可以包括加密算法标识和加密对象,相应的,如图4所示,在根据加密签名规则对所述报文信息进
行加密处理和/或签名处理得到目标报文信息时可以包括:
[0079] S401,判断内存的预置算法库中是否存储有与所述加密算法标识相匹配的加密算法。
[0080] 具体的,当内存的预置算法库中有与加密算法标识相匹配的加密算法时,可以执行步骤S403至步骤S407;否则,可以执行步骤S409。
[0081] S403,根据所述加密对象确定所述报文信息中的待加密内容。
[0082] 其中,加密对象表征对报文信息中的哪些内容做加密,一般不同的外部业务系统之间会有差异,例如,有的外部业务系统要求对整个报文信息加密,那么加密对象即为整个
报文信息,有的外部业务系统要求是对req对象加密,那么req对象即为加密对象。
[0083] S405,执行所述加密算法对所述待加密内容进行加密处理,得到加密报文。
[0084] 具体的实施中,可以复制一个用于执行上述加密算法的算法处理器,通过在算法处理器运行加密算法对待加密内容进行加密处理,得到加密报文。
[0085] S407,根据所述加密报文生成所述目标报文信息。
[0086] 实际应用中,加密签名规则若只包括加密规则,表明只需对报文信息进行加密处理,那么就可以直接根据加密报文得到目标报文信息,具体的,可以直接将加密报文作为目
标报文信息。
[0087] 作为一个可选的实施方式,加密签名规则可以同时包括加密规则和签名规则,那么在根据所述加密报文生成所述目标报文信息时可以采用图5所示的方法,如图5所示,该
方法可以包括:
[0088] S501,判断所述内存的预置算法库中是否存储有与所述签名算法标识相匹配的签名算法。
[0089] 具体的,当内存的预置算法库中存储有与签名算法标识相匹配的签名算法时,可以执行步骤S503至步骤S507;否则,执行步骤S509。
[0090] S503,根据所述签名对象确定所述加密报文中的待签名内容。
[0091] 其中,签名对象表征对报文信息中的哪些内容做签名,一般不同的外部业务系统之间会有差异,例如,有的外部业务系统要求对整个报文信息做签名,那么签名对象即为整
个加密报文,有的外部业务系统要求对报文信息中的指定字符串进行签名,那么该指定字
符串在加密报文中的对应内容即为签名对象。
[0092] S505,执行所述签名算法对所述待签名内容进行签名处理,得到签名字段。
[0093] 实际应用中,在执行签名算法之前还可以获取签名规则中的签名要求,该签名要求可以但不限于包括签名字段的排序方式、是否需要过滤空字段以及签名密钥key,上述签
名要求均为用户通过加密签名配置界面输入的配置信息,按照签名要求对待签名内容进行
处理,之后对处理后的待签名内容执行签名算法运算,在执行签名算法运算时,可以复制一
个用于执行上述签名算法的算法处理器,通过在算法处理器运行签名算法对处理后的待签
名内容进行签名处理,得到签名字段。
[0094] 以图3中示出的签名规则为例,签名算法标识为MD5算法,签名对象为所有字典拼接(即针对整个报文信息,签名对象为整个加密报文),签名字段的排序方式为ASCII从小到
大,过滤空字段,签名key为487584eddihfidfidfjd232jhefe,则步骤S505在执行时,可以将
加密报文内的空字段过滤掉,对于剩下非空字段按照字段的ASCII码从小到大排序(字典
序),然后使用url键值对的格式(即key1=value1&key2=value2……)拼接成字符串data,
在字符串data最后拼接上签名key,得到处理后的待签名内容,最后采用MD5签名算法进行
MD5运算,从而得到签名字段。
[0095] 可以理解的,上述签名规则只是一个示例,并不构成对本发明的限定。
[0096] S507,根据所述签名字段生成所述目标报文信息。
[0097] 具体的实施中,可以分别获取原始的报文信息、加密处理得到的加密报文以及签名字段,然后对原始的报文信息、加密报文和签名字段进行拼接,从而得到目标报文信息,
该目标报文信息即为经过加密和签名处理后的报文信息。以下是经加密、签名处理得到目
标报文信息的一个示例:
[0098] 原始报文:
[0099]
[0100]
[0101] 使用aes加密,密钥:abcdefg,加密结果:
[0102]
[0103] md5签名(密钥erfghju)结果:
[0104]
[0105] 上述示例中,签名结果即为目标报文信息,由原始报文、加密报文和签名字段拼接而成。
[0106] S509,当所述内存的预置算法库中没有与所述签名算法标识相匹配的签名算法时,输出第二提示信息;所述第二提示信息用于提示当前不支持所述签名算法。
[0107] 本说明书实施例中,当在预置算法库中没有匹配到与签名算法标识对应的签名算法时,表明当前加密签名服务器无法按照被调用的外部业务接口的签名规则对报文信息进
行签名处理,此时可以输出用于提示当前不支持相应签名算法的第二提示信息,该第二提
示信息可以返回给业务接口调用服务器,业务接口调用服务器可以基于该第二提示信息生
成接口调用失败的消息,并将该消息返回给相应的客户端,该客户端基于该接口调用失败
的消息可以生成业务请求失败消息,并将该业务请求失败消息展示给用户。
[0108] 此外,当加密签名服务器输出上述第二提示信息之后,相应的运营人员可以按照预置算法库对算法逻辑的约定格式向预置算法库中添加上述签名算法的算法逻辑,那么加
密签名服务器获取输入的该签名算法的算法逻辑,并将该签名算法的算法逻辑存入内存的
预置算法库中,从而实现对预置算法库的扩展。
[0109] S409,当所述内存的预置算法库中没有与所述加密算法标识相匹配的加密算法时,输出第一提示信息;所述第一提示信息用于提示当前不支持所述加密算法。
[0110] 本说明书实施例中,当在预置算法库中没有匹配到与加密算法标识对应的加密算法时,表明当前加密签名服务器无法按照被调用的外部业务接口的加密规则对报文信息进
行加密处理,此时可以输出用于提示当前不支持相应加密算法的第一提示信息,该第一提
示信息可以返回给业务接口调用服务器,业务接口调用服务器可以基于该第一提示信息生
成接口调用失败的消息,并将该消息返回给相应的客户端,该客户端基于该接口调用失败
的消息可以生成业务请求失败消息,并将该业务请求失败消息展示给用户。
[0111] 此外,当加密签名服务器输出上述第一提示信息之后,相应的运营人员可以按照预置算法库对算法逻辑的约定格式向预置算法库中添加上述加密算法的算法逻辑,那么加
密签名服务器获取输入的该加密算法的算法逻辑,并将该加密算法的算法逻辑存入内存的
预置算法库中,从而实现对预置算法库的扩展。
[0112] S207,向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业务接口对应
的外部业务系统。
[0113] 其中,业务接口调用服务器可以基于http或https进行外部业务接口的调用。
[0114] 由上述技术方案可见,业务接口调用服务器在对接一个外部业务系统的接口时涉及到的编码逻辑可以包括加密对象、加密算法、签名对象、签名算法,而实际情况是,有可能
一个外部业务系统要求的是AES加密、MD5签名,另一个外部业务系统要求的是DES加密、MD5
签名,如果有10种加密算法,10种签名算法,那么一种有100种算法组合,若按照现有技术的
处理方式在业务接口调用服务器本地针对每个外部业务系统的要求编写加密签名处理的
代码逻辑,可想而知其工作量以及复杂程度是非常大的,而且出错率高,不利于系统的稳定
运行,也使得对报文信息的处理效率低。
[0115] 本发明实施例将对报文信息的加密签名处理从业务接口调用服务器剥离出来进行统一处理,并且在处理时基于统一的预置加密签名配置库,通过加密签名配置信息即可
确定相应的加密签名规则,不仅提高了报文处理效率,而且无需针对每个外部业务接口都
编写一个加密和签名处理代码逻辑,不仅提高了外部业务接口的接入效率,而且使得系统
运行的稳定性得到保证,易于维护,可扩展性强。
[0116] 此外,加密签名处理属于CPU(中央处理器,Central Processing Unit)密集型服务,本发明实施例将其从业务接口调用服务器独立出来可以单独部署在CPU设备先进的服
务器中,避免了影响业务接口调用服务器的业务处理,提高了整个系统的设备利用率。所有
接入至业务接口调用服务器的外部业务系统的加密签名要求统一化配置,易于管理。而且
一旦后续已接入的外部业务系统更换加密算法、签名算法、签名要求等等,只需要更改相应
的加密签名配置信息即可,而无需去修改代码,进而无需进行代码的重新测试和发布,节省
了外部业务系统接口的维护成本和维护效率。
[0117] 与上述几种实施例提供的报文处理方法相对应,本发明实施例还提供一种报文处理装置,由于本发明实施例提供的报文处理装置与上述几种实施例提供的报文处理方法相
对应,因此前述报文处理方法的实施方式也适用于本实施例提供的报文处理装置,在本实
施例中不再详细描述。
[0118] 请参阅图6,其所示为本发明实施例提供的一种报文处理装置的结构示意图,该装置具有实现上述方法实施例中报文处理方法的功能,所述功能可以由硬件实现,也可以由
硬件执行相应的软件实现。如图6所示,该装置可以包括:
[0119] 接收模块610,用于接收来自业务接口调用服务器的报文信息;所述报文信息包括被调用的外部业务接口的接口标识;
[0120] 第一确定模块620,用于根据被调用的所述外部业务接口的接口标识,确定预置加密签名配置库中与所述报文信息相匹配的加密签名配置信息;所述加密签名配置信息包括
所述外部业务接口的接口标识以及加密签名规则;
[0121] 加密签名模块630,用于根据所述加密签名规则对所述报文信息进行加密处理和/或签名处理,得到目标报文信息;
[0122] 返回模块640,用于向所述业务接口调用服务器返回所述目标报文信息,以使所述业务接口调用服务器通过调用所述外部业务接口将所述目标报文信息发送给所述外部业
务接口对应的外部业务系统。
[0123] 作为一个可选的实施方式,所述装置还包括用于建立预置加密签名配置库的建立模块,所述建立模块包括:
[0124] 响应模块,用于响应于新增加密签名配置请求,展示配置界面;所述配置界面包括:外部业务接口的接口标识输入区域以及加密签名规则输入区域;
[0125] 第一获取模块,用于获取通过所述配置界面输入的加密签名配置信息;所述加密签名配置信息包括:用户输入的外部业务接口的接口标识以及用户输入的加密签名规则。
[0126] 作为一个可选的实施方式,所述加密签名规则包括加密规则,所述加密规则包括加密算法标识和加密对象;
[0127] 所述加密签名模块630可以包括:
[0128] 第一判断模块,用于判断内存的预置算法库中是否存储有与所述加密算法标识相匹配的加密算法;
[0129] 第二确定模块,用于在第一判断模块判断的结果为是时,根据所述加密对象确定所述报文信息中的待加密内容;
[0130] 第一执行模块,用于执行所述加密算法对所述待加密内容进行加密处理,得到加密报文;
[0131] 第一生成模块,用于根据所述加密报文生成所述目标报文信息。
[0132] 作为一个可选的实施方式,所述加密签名规则包括签名规则,所述签名规则包括签名算法标识和签名对象;
[0133] 所述第一生成模块可以包括:
[0134] 第二判断模块,用于判断所述内存的预置算法库中是否存储有与所述签名算法标识相匹配的签名算法;
[0135] 第三确定模块,用于在第二判断模块判断的结果为是时,根据所述签名对象确定所述加密报文中的待签名内容;
[0136] 第二执行模块,用于执行所述签名算法对所述待签名内容进行签名处理,得到签名字段;
[0137] 第二生成模块,用于根据所述签名字段生成所述目标报文信息。
[0138] 作为一个可选的实施方式,所述第二生成模块可以包括:
[0139] 第二获取模块,用于获取所述报文信息、所述加密报文和所述签名字段;
[0140] 拼接模块,用于对所述报文信息、加密报文和签名字段进行拼接,得到所述目标报文信息。
[0141] 作为一个可选的实施方式,所述装置还可以包括:
[0142] 第一输出模块,用于在所述内存的预置算法库中没有所述加密算法时,输出第一提示信息;所述第一提示信息用于提示当前不支持所述加密算法;
[0143] 第二输出模块,用于在所述内存的预置算法库中没有所述签名算法时,输出第二提示信息;所述第二提示信息用于提示当前不支持所述签名算法。
[0144] 作为一个可选的实施方式,所述装置还可以包括:
[0145] 第三获取模块,用于获取输入的所述加密算法的算法逻辑,将所述加密算法的算法逻辑存入所述内存的预置算法库中;和/或,
[0146] 第四获取模块,用于获取输入的所述签名算法的算法逻辑,将所述签名算法的算法逻辑存入所述内存的预置算法库中。
[0147] 需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,
即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,
上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这
里不再赘述。
[0148] 本发明实施例的报文处理装置将对报文信息的加密签名处理从业务接口调用服务器剥离出来进行统一处理,并且在处理时基于统一的预置加密签名配置库,通过加密签
名配置信息即可确定相应的加密签名规则,不仅提高了报文处理效率,而且无需针对每个
外部业务接口都编写一个加密和签名处理代码逻辑,不仅提高了外部业务接口的接入效
率,而且使得系统运行的稳定性得到保证,易于维护,可扩展性强。
[0149] 本发明实施例提供了一种服务器,该服务器包括处理器和存储器,该存储器中存储有至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加
载并执行以实现如上述方法实施例所提供的报文处理方法。
[0150] 存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及报文处理。存储器可主要包括存储程序区和存储数
据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据
所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括
非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相
应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
[0151] 本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本发明实施例提供的运行一种报文处理方法的服
务器的硬件结构框图,如图7所示,该服务器700可因配置或性能不同而产生比较大的差异,
可以包括一个或一个以上中央处理器(Central Processing Units,CPU)710(处理器710可
以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储
器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上
海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储
介质720的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指
令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在服务器700上执行
存储介质720中的一系列指令操作。服务器700还可以包括一个或一个以上电源760,一个或
一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个
以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0152] 输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括
一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相
连从而可与互联网进行通讯。在一个实例中,输入输出接口740可以为射频(Radio 
Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0153] 本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器700还可包括比图7中所示更多或者更少的组件,或者具有与
图7所示不同的配置。
[0154] 本发明的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于服务器之中以保存用于实现一种报文处理方法相关的至少一条指令或者至少一段程序,该至少
一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的报文
处理方法。
[0155] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者
光盘等各种可以存储程序代码的介质。
[0156] 需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一
些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且
仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连
续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者
可能是有利的。
[0157] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0158] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0159] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。