本发明涉及计算机技术与网络数据安全技术领域,具体涉及在传输层对api服务数据进行加解密的方法及系统。
背景技术:
现下互联网应用的客户端和服务端之间通常通过httpapi的方式进行交互通信,为防止交互通信过程中用户或服务端的明文数据被劫持与篡改,客户端与服务端会约定某种数据加密方式,以加密后的密文数据进行传输。通常客户端将请求明文数据进行加密,以密文数据的方式上报给服务端,服务端首先对密文报文进行解密获得明文报文,在完成了服务端的业务逻辑处理后,生成明文的响应报文,将明文报文按相同的加密方式进行加密,然后返回给应用客户端,客户端则拿到密文的响应报文,解密后呈现给用户。现有的加密处理方式通常是对分别对每一个api服务进行请求与响应的加解密,工作量较大且效率低下。
技术实现要素:
本发明公开的在传输层对api服务数据进行加解密的方法,通过在api服务端接收请求数据前和发出响应数据之后,分别对请求数据和响应数据进行解密与加密,而在请求服务的api客户端做对应的加密与解密处理,实现对api服务数据以密文的方式传输。
本发明采用以下技术方案:
一种在传输层对api服务数据进行加解密的方法,其特征在于,它包括以下步骤:
步骤1,构建api服务请求过滤器;
步骤2,构建api服务响应过滤器;
步骤3,基于与api服务端约定的加解密算法与规则,api客户端封装业务需求数据,并将明文请求数据转换为明文字符串,并对该明文字符串进行加密生成密文请求数据,再向api服务端发起请求;
步骤4,api服务端接收api客户端的服务请求,触发api服务请求过滤器,请求api服务请求过滤器,将密文请求数据进行解密并重新设置容器中的输入流实体数据;
步骤5,api业务逻辑单元接收容器的服务请求,将输入流实体数据提取出并转换为api所定义的请求数据类型,并基于请求数据对预先定义好的业务逻辑进行处理,生成明文响应报文数据,将明文响应报文数据写入到容器的响应实体中;
步骤6,明文响应报文数据被写入容器的响应实体中后,触发api服务响应过滤器,对返回的明文响应报文数据进行加密生成密文响应报文数据并重新设置容器中的响应实体;
步骤7,api客户端接收api服务端返回的密文响应报文数据,解析出响应实体并解密得打所需要的明文响应报文数据,以完成api客户端的业务逻辑处理
优选的,所述步骤4具体包括:
步骤41,拦截api客户端的服务请求,获取其中的输入流实体数据;
步骤42,遍历输入流实体数据,将其转换为byte数组输出流数据;
步骤43,将byte数组输出流数据转换为密文请求数据字符串;
步骤44,按照约定的加解密算法与规则,将密文请求数据字符串解密为明文请求数据字符串;
步骤45,将明文请求数据字符串重新转换为输入流实体数据,并将明文的输入流实体数据写入容器的输入流实体中,请求继续进入到api业务逻辑单元中。
优选的,所述步骤6具体包括:
步骤61,拦截本次响应报文数据,获取其中的明文响应报文数据;
步骤62,将明文响应报文数据转换为明文响应字符串,并按约定的加解密算法与规则,对明文响应字符串加密,生成密文响应字符串;
步骤63,将密文响应字符串重新设置到容器的响应实体中,使得响应继续执行,并最终将密文响应报文数据返回给本次服务请求的api客户端。
本发明还提供一种在传输层对api服务数据进行加解密的系统,它包括api客户端和api服务端,所述api客户端与api服务端进行网络通信,并且所述api服务端内设置有api服务请求过滤器、api服务响应过滤器和api业务逻辑单元,所述api业务逻辑单元分别与api服务请求过滤器和api服务响应过滤器进行网络通信。
与现有技术相比,本发明的有益效果是:
本发明公开的在传输层对api服务数据进行加解密的方法,通过在运行api服务的容器中分别设置服务请求过滤器和服务响应过滤器,在不影响api服务在容器中的请求与响应流程的情况下,api服务端分别于请求到达前和响应发出后拦截相应的请求密文报文和响应明文报文,在按约定的算法与规则作出加解密操作,确保请求与响应流程的完成,使得请求与响应报文数据传输层处于密文状态,而在api客户端和api服务端可获取明文数据以完成业务逻辑处理。
本发明公开的方法在确保api服务关键业务数据在传输层安全性的同时,逻辑与结构上独立且可复用的过滤器的引入,与也大大降低了api服务实施工作量,提高了效率。
附图说明
图1为本发明在传输层对api服务数据进行加解密的方法流程图。
图2为本发明在传输层对api服务数据进行加解密的系统的框架图。
具体实施方式
下面结合附图对本发明作进一步阐述。
如图1所示的在传输层对api服务数据进行加解密的方法,它包括以下步骤:
s101,构建api服务请求过滤器;
s102,构建api服务响应过滤器;
s103,基于与api服务端约定的加解密算法与规则,api客户端封装业务需求数据,并将明文请求数据转换为明文字符串,并对该明文字符串进行加密生成密文请求数据,再向api服务端发起请求;
s104,api服务端接收api客户端的服务请求,触发api服务请求过滤器,请求api服务请求过滤器,将密文请求数据进行解密并重新设置容器中的输入流实体数据;
s105,api业务逻辑单元接收容器的服务请求,将输入流实体数据提取出并转换为api所定义的请求数据类型,并基于请求数据对预先定义好的业务逻辑进行处理,生成明文响应报文数据,将明文响应报文数据写入到容器的响应实体中;
s106,明文响应报文数据被写入容器的响应实体中后,触发api服务响应过滤器,对返回的明文响应报文数据进行加密生成密文响应报文数据并重新设置容器中的响应实体;
s107,api客户端接收api服务端返回的密文响应报文数据,解析出响应实体并解密得打所需要的明文响应报文数据,以完成api客户端的业务逻辑处理。
优选的,步骤s104具体包括:
步骤41,拦截api客户端的服务请求,获取其中的输入流实体数据;
步骤42,遍历输入流实体数据,将其转换为byte数组输出流数据;
步骤43,将byte数组输出流数据转换为密文请求数据字符串;
步骤44,按照约定的加解密算法与规则,将密文请求数据字符串解密为明文请求数据字符串;
步骤45,将明文请求数据字符串重新转换为输入流实体数据,并将明文的输入流实体数据写入容器的输入流实体中,请求继续进入到api业务逻辑单元中。
优选的,步骤s106具体包括:
步骤61,拦截本次响应报文数据,获取其中的明文响应报文数据;
步骤62,将明文响应报文数据转换为明文响应字符串,并按约定的加解密算法与规则,对明文响应字符串加密,生成密文响应字符串;
步骤63,将密文响应字符串重新设置到容器的响应实体中,使得响应继续执行,并最终将密文响应报文数据返回给本次服务请求的api客户端。
如图2所示的在传输层对api服务数据进行加解密的系统,它包括api客户端11和api服务端12,api客户端11与api服务端12进行网络通信,并且api服务端12内设置有api服务请求过滤器121、api服务响应过滤器122和api业务逻辑单元123,api业务逻辑单元123分别与api服务请求过滤器121和api服务响应过滤器122进行网络通信。
以上具体实施方式对本发明的实质进行详细说明,但并不能对本发明的保护范围进行限制,显而易见地,在本发明的启示下,本技术领域普通技术人员还可以进行许多改进和修饰,需要注意的是,这些改进和修饰都落在本发明的权利要求保护范围之内。