掌桥专利:专业的专利平台
掌桥专利
首页

一种Web接口数据的加密方法及系统

文献发布时间:2023-06-19 09:32:16


一种Web接口数据的加密方法及系统

技术领域

本发明涉及信息安全领域,尤其涉及一种Web接口数据的加密方法及系统。

背景技术

Web服务是一种服务导向的技术架构,其通过标准的Web协议提供服务,例如HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)协议。通常一个Web服务是由许多应用程序接口(API)所组成的,它们通过网络同远程服务器交互数据,实现服务端执行和响应客户端请求,客户端(通常是浏览器、APP等)组织展示服务端的数据与服务。但是由于HTTP是明文传输协议,无法确保数据传输的机密性与完整性;而HTTPS协议利用SSL/TLS来加密数据包,虽可提供数据传输过程中的机密性与完整性,但解决不了客户端资源数据安全与网络爬虫的威胁,一些具有高价值的接口敏感数据、图片资源等无法得到保护,不能防止API接口被滥用、数据被非法爬取等问题。

发明内容

本发明所要解决的技术问题是:提供一种Web接口数据的加密方法及系统,实现对接口数据的保护。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种Web接口数据的加密方法,包括步骤:

S1、服务端接收客户端发送的安全脚本生成请求,生成对应的安全脚本并发送给所述客户端,所述安全脚本包括请求拦截器;

S2、所述客户端根据所述请求拦截器拦截请求,并根据所述安全脚本加密所述请求;

S3、所述客户端发送加密后的所述请求。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种Web接口数据的加密系统,包括服务端及客户端,所述服务端包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述客户端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:

S1、接收客户端发送的安全脚本生成请求,生成对应的安全脚本并发送给所述客户端,所述安全脚本包括请求拦截器;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

S2、根据所述请求拦截器拦截请求,并根据所述安全脚本加密所述请求;

S3、发送加密后的所述请求。

本发明的有益效果在于:服务端接收客户端的请求后生成安全脚本,通过安全脚本进行与客户端之间的交互数据传输,接口数据都进行加密之后才发送,无法截取到明文数据,提高了接口数据的安全性,能够防止接口数据被非法爬取、非法盗用;并且通过设置脚本拦截请求进行加密,实现了用户端的无感,在保证接口数据安全性的同时不会影响到用户的使用体验。

附图说明

图1为本发明实施例的一种Web接口数据的加密方法的步骤流程图;

图2为本发明实施例的一种Web接口数据的加密系统的结构示意图;

图3为本发明实施例的一种Web接口数据的加密方法在实际应用中的流程图;

图4为本发明实施例的一种Web接口数据的加密方法的实现结构示意图;

图5为本发明实施例的一种Web接口数据的加密方法的时序图。

标号说明:

3、一种Web接口数据的加密系统;1、服务端;1.1、第一处理器;1.2、第一存储器;2、客户端;2.1、第二处理器;2.2、第二存储器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1及图3-图5,一种Web接口数据的加密方法,包括步骤:

S1、服务端接收客户端发送的安全脚本生成请求,生成对应的安全脚本并发送给所述客户端,所述安全脚本包括请求拦截器;

S2、所述客户端根据所述请求拦截器拦截请求,并根据所述安全脚本加密所述请求;

S3、所述客户端发送加密后的所述请求。

从上述描述可知,本发明的有益效果在于:服务端接收客户端的请求后生成安全脚本,通过安全脚本进行与客户端之间的交互数据传输,接口数据都进行加密之后才发送,无法截取到明文数据,提高了接口数据的安全性,能够防止接口数据被非法爬取、非法盗用;并且通过设置脚本拦截请求进行加密,实现了用户端的无感,在保证接口数据安全性的同时不会影响到用户的使用体验。

进一步的,所述S1中所述安全脚本还包括响应拦截器;

所述S2还包括:

所述服务端根据所述响应拦截器拦截所述服务端对所述客户端请求的响应,并根据所述安全脚本加密所述响应。

由上述描述可知,拦截器包括请求拦截器及响应拦截器,分别对客户端发起的客户端请求及服务端对于客户端请求的响应进行拦截,能够对客户端请求和服务端响应做出不同的处理,提升加密的灵活性。

进一步的,所述S1中所述安全脚本还包括预设的加密方式和预设的密钥;

所述S2中根据所述安全脚本加密所述请求具体为:

根据预设的所述加密方式及预设的所述密钥加密所述请求,生成密文请求;

将所述密文请求以JSON数据格式封装,并添加时间戳和校验值,形成请求数据包;

所述S3具体为:

发送所述请求数据包。

由上述描述可知,生成密文交互数据后以JSON数据格式封装,并且添加时间戳和相应校验值,JSON数据格式方便了数据的读取和传输,添加时间戳,能够实现防重放识别,校验值能够验证数据完整性,若数据不完整能够请求重新发送相应交互数据包。

进一步的,所述S1中所述生成对应的安全脚本具体为:

预设备选加密方式,所述备选加密方式包括RSA算法、SM2算法、DES算法及SM4算法;

预设备选密钥,所述备选密钥包括随机分配的公钥及分组密码密钥;

在所述备选加密方式中随机选择一种加密方式作为目标加密方式,并在所述备选密钥中随机选择一种密钥作为目标密钥,并将所述目标密钥与所述服务端SESSION会话关联;

根据所述目标加密方式及所述目标密钥生成对应的安全脚本。

由上述描述可知,预设多个加密方式及多种密钥,在生成安全脚本时随机选择一种加密方式与一种密钥匹配对交互数据进行加密,大大增强了破解的难度,并且若一份交互数据包被破解,不会对其余交互数据包产生较大的影响,因其所使用的加密方式和密钥可能完全不同,大大提高了解密的成本。

进一步的,所述S2中根据所述安全脚本加密所述响应包括:

加密所述响应中的图片。

由上述描述可知,若为服务端发送给客户端的响应数据,还对图片进行加密,防止了爬虫通过图片路径等信息爬取到隐藏信息,进一步保证了接口数据的安全性。

进一步的,所述加密所述响应中的图片具体为:

获取所述响应中的图片绝对路径,将所述绝对路径进行加密,形成加密路径;

获取所述响应中的图片,将所述图片转换为Base64格式,并使用预设的密钥加密Base64格式的所述图片。

由上述描述可知,从图片路径和图片本身两个角度入手对图片数据进行加密,加密图片路径,只能通过加密路径访问图片而无法获知图片的绝对路径,防止绝对路径泄密威胁到其他接口数据的安全,对图片本身进行加密防止了图片数据本身在传输过程中被爬取。

进一步的,所述根据预设的所述加密方式及预设的所述密钥加密所述请求,生成密文请求还包括:

对加密后的所述请求进行Base64编码,生成密文请求。

由上述描述可知,将交互数据通过预设的加密方式及密钥加密之后,还对加密后的交互数据进行Base64编码,进一步降低了交互数据的可读性,进一步提高了数据被破解的难度。

进一步的,所述校验值为加密后的所述交互数据与所述密钥按顺序拼接后再进行MD5运算生成的值。

由交互数据和密钥拼接并进行MD5运算得到校验值,接收到交互数据后,能够实时计算加密后的交互数据与密钥拼接后进行MD5运算的值,与校验值进行比较,若不相等则佐鸣交互数据包可能出现损坏,能够及时请求重新发送数据。

进一步的,所述安全脚本为JavaScript脚本文件。

由上述描述可知,使用js脚本文件,能够被绝大多数主流的浏览器内核支持,确保能够在绝大多数环境下成功运行js脚本。

请参照图2,一种Web接口数据的加密系统,包括服务端及客户端,所述服务端包括第一存储器、第一处理器及存储在所述第一存储器上并可在所述第一处理器上运行的第一计算机程序,所述客户端包括第二存储器、第二处理器及存储在所述第二存储器上并可在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:

S1、接收客户端发送的安全脚本生成请求,生成对应的安全脚本并发送给所述客户端,所述安全脚本包括请求拦截器;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

S2、根据所述请求拦截器拦截请求,并根据所述安全脚本加密所述请求;

S3、发送加密后的所述请求。

从上述描述可知,本发明的有益效果在于:服务端接收客户端的请求后生成安全脚本,通过安全脚本进行与客户端之间的交互数据传输,接口数据都进行加密之后才发送,无法截取到明文数据,提高了接口数据的安全性,能够防止接口数据被非法爬取、非法盗用;并且通过设置脚本拦截请求进行加密,实现了用户端的无感,在保证接口数据安全性的同时不会影响到用户的使用体验

请参照图1,本发明的实施例一为:

一种Web接口数据的加密方法,包括步骤:

S1、服务端接收客户端发送的安全脚本生成请求,生成对应的安全脚本并发送给所述客户端,所述安全脚本包括请求拦截器、响应拦截器、Usher的加密方法及预设的密钥;

在一种可选的实施方式中,安全脚本为JavaScript脚本;

其中,所述生成对应的安全脚本具体为:预设备选加密方式,所述备选加密方式包括RSA算法、SM2算法、DES算法及SM4算法;预设备选密钥,所述备选密钥包括随机分配的公钥及分组密码密钥;在所述备选加密方式中随机选择一种加密方式作为目标加密方式,并在所述备选密钥中随机选择一种密钥作为目标密钥,并将所述目标密钥与所述服务端SESSION会话关联;根据所述目标加密方式及所述目标密钥生成对应的安全脚本;

S2、所述客户端根据所述请求拦截器拦截请求,并根据所述安全脚本加密所述请求;所述服务端根据所述响应拦截器拦截所述服务端对所述客户端请求的响应,并根据所述安全脚本加密所述响应;

其中,根据所述安全脚本加密所述请求具体为:根据预设的所述加密方式及预设的所述密钥加密所述请求,对加密后的所述请求进行Base64编码,生成密文请求;将所述密文请求以JSON数据格式封装,并添加时间戳和校验值,形成请求数据包;校验值为加密后的所述交互数据与所述密钥按顺序拼接后再进行MD5运算生成的值;

其中,根据所述安全脚本加密所述响应包括加密所述响应中的图片,具体为:获取所述响应中的图片绝对路径,将所述绝对路径进行加密,形成加密路径;获取所述响应中的图片,将所述图片转换为Base64格式,并使用预设的密钥加密Base64格式的所述图片;

S3、所述客户端发送加密后的所述请求,具体的,客户端发送请求数据包。

请参照图3-图5,本发明的实施例二为:

将上述的一种Web接口数据加密方法应用于实际场景中,具体的,应用于具有客户端及服务端的系统中:

S1、服务端根据客户端发送的安全脚本加载请求,生成安全脚本,具体的,服务端随机分配安全加密方式与密钥,以混淆保护方式写入安全脚本中;

安全脚本中包括加密/解密密钥获取函数、加密函数、解密函数、请求拦截器及相应拦截器;

在一种可选的实施方式中,服务端在公钥密码形式的RSA算法和SM2算法(椭圆曲线公钥密码算法)、分组密码形式的DES算法和SM4算法上述四个算法中随机选择一个写入安全脚本中;并在随机分配的公钥或分组密码密钥中选择一种写入安全脚本中;将密钥与服务端SESSION会话关联,以便服务端能够区分不同会话的加密/解密密钥;

S2、客户端获取安全脚本,安全脚本中的请求拦截器拦截客户端对服务端API接口发起的异步请求,并将请求数据进行加密处理,具体的,根据安全脚本中的密钥和加密方式对请求数据进行加密,得到加密请求数据,以Base64对加密请求数据进行编码,并以JSON数据格式封装加密请求数据,添加时间戳(timestamp)及校验值(Hash哈希值),以{data:Base64编码后的加密请求数据,timestamp:时间戳,hash:校验值}的数据格式进行存储,形成请求数据包;

其中,校验值为data、timestamp及密钥顺序拼接后进行MD5运算生成;

在服务端中,安全脚本中的响应拦截器拦截服务端对客户端发送的请求数据的响应数据,并将响应数据进行加密处理,生成响应数据包,除了与上述对请求数据进行加密处理生成请求数据包的相同步骤外,在生成加密响应数据时还包括:

对响应数据中的图片绝对路径进行加密,生成加密路径,并将图片转换为Base64格式,使用安全脚本中的加密方式和密钥对图片进行加密;

在一种可选的实施方式中,提取响应数据中的图片链接地址,将直接资源路径转换为加密路径,如将/image/20200808/xxxx.jpg的图片URL绝对路径,加密转换为/encrypt/xxxxxx.jpg.enc形式的加密URL地址,客户端解析访问图片加密路径时,将原有图片转换为Base64格式并使用当前会话相应加密秘钥和加密算法加密的图片数据返回;

S3、服务端接收到客户端的请求数据包或客户端接收到服务端的响应数据包后,首先将数据包中的data、timestamp及密钥按顺序拼接并计算拼接后字符串的MD5值,与数据包中的hash比较,若二者的值不相同,则做数据异常处理,解密数据包失败;

若二者值相同,取出data,使用解密安全脚本中的解密函数进行解密得到明文数据;

若为响应数据包,得到明文数据后,获取明文数据中加密图片地址,具体的,获取后缀为jpg.enc、jepg.enc、gif.enc、png.enc等的地址,并向服务端请求提取加密图片URL地址,同时将响应数据包中加密后的图片进行解密,得到Base64格式的图片,以Base64格式的图片替换URL地址;

在一种可选的实施方式中,服务端为Web服务端,客户端为浏览器。

请参照图2,本发明的实施例三为:

一种Web接口数据的加密系统3,包括服务端1及客户端2,所述服务端1包括第一存储器1.2、第一处理器1.1及存储在所述第一存储器1.2上并可在所述第一处理器1.1上运行的第一计算机程序,所述客户端2包括第二存储器2.2、第二处理器2.1及存储在所述第二存储器2.2上并可在所述第二处理器2.1上运行的第二计算机程序,所述第一处理器1.1执行所述第一计算机程序时实现实施例一或实施例二中服务端所执行的步骤

所述第二处理器2.1执行所述第二计算机程序时实现实施例一或实施例二中客户端所执行的步骤。

综上所述,本发明提供了一种Web接口数据的加密方法及系统,设置安全脚本,服务端根据客户端的相应请求配置安全脚本,配合jQuery、axios等主流JavaScript异步请求框架自有的请求拦截器、响应拦截器,作用于Web客户端与服务端的数据交互过程,能够无感知的提供接口数据加解密服务。可应用于浏览器与网站服务器的接口数据交互、Android、iOS移动客户端与网站服务器的接口数据交互,客户端请求接口数据前加密请求数据,服务端解密数据执行响应,并返回加密数据给客户端,客户端解密数据并提取加密图片URL,完成WEB接口数据交互过程的全程加密,配合时间戳、hash字段,还具体防篡改、防重放的功能。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种Web接口数据的加密方法及系统
  • 接口应用系统及用WEB SERVICE实现数据接口的方法
技术分类

06120112200106