数据库数据加解密方法、装置、计算机设备和存储介质与流程

文档序号:17549116发布日期:2019-04-30 18:07阅读:159来源:国知局
数据库数据加解密方法、装置、计算机设备和存储介质与流程

本申请涉及信息安全技术领域,特别是涉及一种数据库数据加解密方法、装置、计算机设备和存储介质。



背景技术:

随着网络化、信息化的高速发展,信息数据的安全问题日益突出,大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。为了加强数据的安全性,大多数系统会对敏感数据进行加密后存储在数据库,当读取这些加密数据时,需要解密后才能正常操作。

传统对敏感数据进行加密的方法通常是,把密钥保存在服务器本地,从服务器本地读取密钥进行加密。

然而,上述方法会导致密钥分发效率低,安全性差。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高密钥分发效率,安全性高的数据库数据加解密的方法、装置、计算机设备和存储介质。

第一方面,本申请实施例提供一种数据库数据加解密方法,所述方法包括:

获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识;

根据所述访问请求读取数据库配置模板;

当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;

其中,所述数据库配置模板为各个数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

在其中一个实施例中,在所述获取应用服务对数据库发起的访问请求之前,所述方法还包括:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

在数据库配置模板中为所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

根据所述密钥和加解密算法生成所述配置项的加解密接口。

在其中一个实施例中,所述通知信息还携带有服务器地址;

所述接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥,包括:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

在其中一个实施例中,当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理,包括:

当根据所述数据库配置模板确定所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为插入或更新操作时,调用所述加解密接口对所述字段对应的数据进行加密,再按照正常业务逻辑访问数据库;

当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为读取操作时,调用所述加解密接口对所述字段对应的数据进行解密,再按照正常业务逻辑访问数据库。

第二方面,本申请实施例提供另一种数据库数据加解密方法,所述方法包括:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

在数据库配置模板中为与所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

根据所述密钥和加解密算法生成所述配置项的加解密接口。

在其中一个实施例中,所述通知信息还携带有服务器地址;

所述接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥,包括:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

第三方面,本申请实施例提供一种数据库数据加解密装置,所述装置包括:

请求获取模块,用于获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识;

读取模块,用于根据所述访问请求读取数据库配置模板;

调用模块,用于当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;

其中,所述数据库配置模板为所述应用服务标识对应的数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

第四方面,本申请实施例提供另一种数据库数据加解密装置,所述装置包括:

发送模块,用于当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收模块,用于接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

配置模块,用于在数据库配置模板中为所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

生成模块,用于根据所述密钥和加解密算法生成所述配置项的加解密接口。

第五方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面或第二方面中任一实施例所述方法的步骤。

第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面中任一实施例所述的方法的步骤。

本申请实施例提供的数据库数据加解密方法、装置、计算机设备和存储介质,当服务器获取到应用服务标识对数据库发起的访问请求时,读取数据库配置模板,确定该访问请求所访问的数据库表中包含有加密存储的字段后,通过调用从密钥机上加载的密钥生成的加解密接口对该字段对应的数据进行加解密处理,通过使用安全独立的密钥机进行密钥分发,不需要把密钥保存在所有服务器,极大提高了密钥安全性和密钥的分发效率。

另外,应用服务可以自动地把相关数据加密后存储在对应的数据库表字段,当用户终端应用访问这些数据时,应用服务也可以自动地解密已加密字段数据,使得敏感数据的加密和解密操作对应用服务来说是透明且自动的,极大提高了产品研发和维护效率。

附图说明

图1为一个实施例中数据库数据加解密方法的应用环境图;

图2为一个实施例中数据库数据加解密方法的流程示意图;

图3为图2实施例中密钥机加载的流程示意图;

图4为图2实施例中s203的实现方式的流程示意图;

图5为一个实施例中数据库数据加解密的交互信令图;

图6为一个实施例中数据库数据加解密的交互场景图;

图7为一个实施例中数据库数据加解密装置的结构框图;

图8为另一个实施例中数据库数据加解密装置的结构框图;

图9为另一个实施例中数据库数据加解密装置的结构框图;

图10为另一个实施例中数据库数据加解密装置的结构框图;

图11为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

目前对敏感数据进行加密的方法通常是,首先把密钥保存在服务器本地,如果是分布式服务,则需要把密钥保存在多台服务器上,然后从服务器本地读取密钥进行加密操作,此外,应用服务访问数据库时,通常做法都是把对敏感数据的加解密操作直接固化在业务代码里,这样会导致业务功能模块和加解密功能模块耦合太紧,一旦有变化,需要改动多处地方甚至重写代码,导致研发和维护效率低下,而且容易造成误操作,因此可见,目前的数据库数据加解密方法存在密钥分发效率低,安全性差的问题。

本申请实施例提供的数据库数据加解密方法,可以应用于如图1所示的应用环境中。其中,用户终端101可以通过网络与服务器102进行通信,服务器102与密钥机103建立通信连接后,可以进行通信。在用户终端101、服务器102、密钥机103之间相互建立起通信连接后,就可以完成数据库数据加解密的过程。其中,用户终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现,密钥机103可以是一个存储密钥的设备。

具体地,当用户终端101发起某一操作上,例如登录微信,服务器102接收到操作信息启动对应的应用服务,服务器将应用服务启动信息发送给密钥机103,密钥机103在接收到应用服务启动信息后,将应用服务对应的密钥返回给服务器102,服务器102接收到密钥并保存在本机内存。此外,可以在服务器102端为数据库配置模板中增加配置项。可选地,当用户终端101具体进行某一操作时,例如“保存微信账号”或“读取账号密码”,服务器102会获取微信应用对服务器数据库发起的访问请求,进而根据访问请求读取数据库配置模板,若访问请求访问的数据库表中包含有加密存储的字段,调用服务器上加解密接口进行加解密处理。例如,若“读取账号密码”为加密字段,调用服务器上加解密接口进行加解密处理,并将读取的信息发送给用户终端101,若“保存微信账号”不是加密字段,服务器正常访问数据库进行操作,并将账号已保存的信息发送给用户终端101。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

图2为一个实施例中数据库数据加解密方法的流程图,该方法运行于图1中的服务器102,该方法涉及的是服务器根据服务器上应用服务的访问请求对数据库数据加解密的过程。如图2所示,该方法具体包括以下步骤:

s201,获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识。

其中,数据库可以是关系数据库,关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。

可选地,应用服务可以是服务器上的应用程序,可以是办公应用程序、聊天应用程序等,具体的,可以是常见的excel、qq、微信、播放器等,每一个应用服务都运行于独立的进程,且拥有自己独立的地址空间。应用服务标识是用于唯一标示应用服务的字符串。该字符串可包括数字、字母和字符中的一种或多种。

可选地,当服务器上的应用服务,例如播放器启动后,会对服务器上的数据库发起访问请求,进而服务器获取播放器对数据库发起的访问请求。

访问请求可为对应用程序的数据的查看请求、读取请求、插入请求、更新请求等。

s202,根据所述访问请求读取数据库配置模板。

其中,数据库模板用于为生成新的数据库提供原型,在数据库模板的基础上为每一个数据库表增加配置项,即可生成数据库配置模板,数据库配置模板用于指定需要加密存储的字段名称,或实现加解密功能的接口名称。根据上述s201获取的访问请求读取数据库配置模板中的配置项。

例如,当服务器的应用服务为播放器时,获取播放器对数据库发起的访问请求,读取相应的数据库配置模板,在配置项中可以指定需要加密存储的字段名称,也可以指定实现加解密功能的接口的名称,进而获取访问请求要访问的数据库表中是否还有需要加密存储的字段及其对应的实现加解密功能的接口的名称。

s203,当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;其中,所述数据库配置模板为各个数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

可选的,当根据所述数据库配置模板确定所述访问请求访问的数据库表中包含有加密存储的字段,例如,服务器上的应用服务为播放器时,对上述s202读取的数据库配置模板做判断,如果当前访问的数据库表没有包含加密存储的字段,那么按正常业务逻辑访问数据库,如果访问的数据库表中包含有加密存储的字段,则调用相应的加解密接口进行对加密字段加解密处理。

上述数据库数据的加解密方法中,当服务器获取到应用服务标识对数据库发起的访问请求时,读取数据库配置模板,确定该访问请求所访问的数据库表中包含有加密存储的字段后,通过调用从密钥机上加载的密钥生成的加解密接口对该字段对应的数据进行加解密处理,通过使用安全独立的密钥机进行密钥分发,不需要把密钥保存在所有服务器,极大提高了密钥安全性和密钥的分发效率。

另外,应用服务可以自动地把相关数据加密后存储在对应的数据库表字段,当用户终端应用访问这些数据时,应用服务也可以自动地解密已加密字段数据,使得敏感数据的加密和解密操作对应用服务来说是透明且自动的,极大提高了产品研发和维护效率。

在其中一个实施例中,如图3所示,在s201“获取应用服务对数据库发起的访问请求”步骤之前,还包括:

s301,当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机。

其中,密钥机用于为每个应用服务配置密钥。应用服务可以是服务器上的应用程序,可以是办公应用程序、聊天应用程序等,具体的,可以是常见的excel、qq、微信、播放器程序等,每一个应用服务都运行于独立的进程,且拥有自己独立的地址空间。应用服务标识可以是应用服务的标志号码id,例如qq对应的标志号码为1,微信对应的标志号码为2,每个应用服务都有对应的唯一的标志号码。

在本实施例中,当服务器与密钥机建立通信时,当服务器检测到应用服务启动时,将启动的应用服务的唯一应用服务标识的通知信息发送到密钥机,可选地,可选地,若当前是服务器的qq启动,服务器将qq对应的标志号码1发送给密钥机。

s302,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

其中,密钥是一种参数,它可以作为在明文转换为密文或将密文转换为明文的算法中输入的参数。本实施例中,密钥保存在密钥机上。当应用服务得到密钥机返回的密钥之后,把密钥保存到本机内存,以供后期加解密时使用。例如,当服务器的qq启动时,服务器将qq对应的标志号码1发送给密钥机,密钥机接收到qq对应的标志号码1后,将qq所对应的密钥,例如可以是a,返回给服务器,服务器接收到密钥机返回的qq对应的密钥a后,将其保存到本机内存上,供后续加解密时使用。

s303,在数据库配置模板中为所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项。

其中,数据库模板用于为生成新的数据库提供原型,在数据库模板的基础上为每一个数据库表增加配置项,即可生成数据库配置模板,数据库配置模板用于指定需要加密存储的字段名称,或实现加解密功能的接口名称。数据库配置模板可以采用xml格式保存。

具体地,数据库配置模板是在数据库模板上为数据库表增加配置项,在配置项中可以指定需要加密存储的字段名称,例如,对于服务器启动qq应用程序时所要访问的数据库,可以在数据库模板指定需要加密存储字段,例如可以是“用户登录密码”,对于服务器启动播放器应用程序所要访问的数据库,可以在数据库模板指定需要加密存储字段,例如,可以是“用户账号密码”,相应的,可以对每个数据库表配置需要加密存储的字段的配置项。

可选的,也可以指定实现加解密功能的接口的名称,例如对于服务器启动qq应用程序时所要访问的数据库,可以在数据库模板指定需要实现加解密功能的接口的名称,例如可以是“加解密接口1”,对于服务器启动播放器应用程序所要访问的数据库,可以在数据库模板指定实现加解密功能的接口的名称,例如可以是“加解密接口2”,相应的,可以对每个数据库表增加需要实现加解密功能的接口的名称的配置项。

s304,根据所述密钥和加解密算法生成所述配置项的加解密接口。

其中,加解密算法是用于将明文转换为密文或将密文转换为明文的算法,用于对数据加解密。常见的加解密算法有对称加密算法和非对称加密算法,其中,常见的对称加密算法有des、3des、desx、blowfish等。在本申请实施例中,所述的加解密算法可以为对称加密算法的任一种,可以是实现加密操作,也可以实现解密操作。

具体地,通过接收到的密钥和加解密算法可以生成加解密接口,加解密接口可以实现加密和解密的功能。例如,可以根据qq对应的密钥和加解密算法生成配置项的加解密接口,具体的,对于需要加密存储的“用户登录密码”,当接受到用户输入的qq登录密码时,通过加解密算法实现加密,即在加解密接口里面实现对“用户登录密码”的加解密操作。

上述数据库数据的加解密方法中,服务器通过将包含应用服务的应用服务标识的通知信息发送到密钥机,密钥机在收到应用服务标识的通知信息后将对应的密钥返回给服务器后,服务器接收并保存对应的密钥,服务器还在数据库配置模板中为应用服务标识对应的数据库表配置有需要加密存储的字段的配置项,且根据密钥和加解密算法生成配置项的加解密接口,通过使用安全独立的密钥机进行密钥分发,不需要把密钥保存在所有服务器,极大提高了密钥安全性和密钥的分发效率。

在其中一个实施例中,s302“所述接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥”包括:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

其中,若服务器的ip地址不是密钥机允许访问的ip地址,密钥机将不会把密钥传到服务器,若服务器的ip地址是密钥机允许访问的ip地址,密钥机将密钥传到服务器,具体地,若当前是服务器的qq启动,服务器将播放器对应的标志号码1发送给密钥机,密钥机接收到标志号码1,将对应的密钥a发送给服务器,服务器接收密钥a并保存。

在其中一个实施例中,如图4所示,s203“当根据所述数据库配置模板确定所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理”还包括:

s401,当根据所述数据库配置模板确定所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为插入或更新操作时,调用所述加解密接口对所述字段对应的数据进行加密,再按照正常业务逻辑访问数据库。

例如,若“保存密码1”为加密字段,此时访问请求为插入操作,调用服务器上的加解密接口对对应的数据进行加密,再按照正常业务逻辑访问数据库。若“保存密码2”为加密字段,此时访问请求为对上面“保存密码1”的更新操作,调用服务器上的加解密接口对对应的数据进行加密,再按照正常业务逻辑访问数据库。

s402,当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为读取操作时,调用所述加解密接口对所述字段对应的数据进行解密,再按照正常业务逻辑访问数据库。

例如,若“读取账号密码”为加密字段,此时访问请求为读取操作,调用服务器上的加解密接口对对应的数据进行解密,再按照正常业务逻辑访问数据库。

在其中一个实施例中,数据库数据加解密方法包括以下步骤:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机。

其中,密钥机用于为每个应用服务配置密钥。应用服务可以是服务器上的应用程序,可以是办公应用程序、聊天应用程序等,具体的,可以是常见的excel、qq、微信、播放器程序等,每一个应用服务都运行于独立的进程,且拥有自己独立的地址空间。应用服务标识可以是应用服务的标志号码id,例如qq对应的标志号码为1,微信对应的标志号码为2,每个应用服务都有对应的唯一的标志号码。

在本实施例中,当服务器与密钥机建立通信时,当服务器检测到应用服务启动时,将启动的应用服务的唯一应用服务标识的通知信息发送到密钥机,可选地,可选地,若当前是服务器的qq启动,服务器将qq对应的标志号码1发送给密钥机。

接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

其中,密钥是一种参数,它可以作为在明文转换为密文或将密文转换为明文的算法中输入的参数。本实施例中,密钥保存在密钥机上。当应用服务得到密钥机返回的密钥之后,把密钥保存到本机内存,以供后期加解密时使用。例如,当服务器的qq启动时,服务器将qq对应的标志号码1发送给密钥机,密钥机接收到qq对应的标志号码1后,将qq所对应的密钥,例如可以是a,返回给服务器,服务器接收到密钥机返回的qq对应的密钥a后,将其保存到本机内存上,供后续加解密时使用。

在数据库配置模板中为与所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项。

其中,数据库模板用于为生成新的数据库提供原型,在数据库模板的基础上为每一个数据库表增加配置项,即可生成数据库配置模板,数据库配置模板用于指定需要加密存储的字段名称,或实现加解密功能的接口名称。数据库配置模板可以采用xml格式保存。

具体地,数据库配置模板是在数据库模板上为数据库表增加配置项,在配置项中可以指定需要加密存储的字段名称,例如,对于服务器启动qq应用程序时所要访问的数据库,可以在数据库模板指定需要加密存储字段,例如可以是“用户登录密码”,对于服务器启动播放器应用程序所要访问的数据库,可以在数据库模板指定需要加密存储字段,例如,可以是“用户账号密码”,相应的,可以对每个数据库表配置需要加密存储的字段的配置项。

可选的,也可以指定实现加解密功能的接口的名称,例如对于服务器启动qq应用程序时所要访问的数据库,可以在数据库模板指定需要实现加解密功能的接口的名称,例如可以是“加解密接口1”,对于服务器启动播放器应用程序所要访问的数据库,可以在数据库模板指定实现加解密功能的接口的名称,例如可以是“加解密接口2”,相应的,可以对每个数据库表增加需要实现加解密功能的接口的名称的配置项。

根据所述密钥和加解密算法生成所述配置项的加解密接口。

其中,加解密算法是用于将明文转换为密文或将密文转换为明文的算法,用于对数据加解密。常见的加解密算法有对称加密算法和非对称加密算法,其中,常见的对称加密算法有des、3des、desx、blowfish等。在本申请实施例中,所述的加解密算法可以为对称加密算法的任一种,可以是实现加密,也可以实现解密操作。

具体地,通过接收到的密钥和加解密算法可以生成加解密接口,加解密接口可以实现加密和解密的功能。例如,可以根据qq对应的密钥和加解密算法生成配置项的加解密接口,具体的,对于需要加密存储的“用户登录密码”,当接受到用户输入的qq登录密码时,通过加解密算法实现加密,即在加解密接口里面实现对“用户登录密码”的加解密操作。

上述数据库数据的加解密方法中,服务器通过将包含应用服务的应用服务标识的通知信息发送到密钥机,密钥机在收到应用服务标识的通知信息后将对应的密钥返回给服务器后,服务器接收并保存对应的密钥,服务器还在数据库配置模板中为应用服务标识对应的数据库表配置有需要加密存储的字段的配置项,且根据密钥和加解密算法生成配置项的加解密接口,通过使用安全独立的密钥机进行密钥分发,不需要把密钥保存在所有服务器,极大提高了密钥安全性和密钥的分发效率。

在其中一个实施例中,“所述接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥”包括:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

其中,若服务器的ip地址不是密钥机允许访问的ip地址,密钥机将不会把密钥传到服务器,若服务器的ip地址是密钥机允许访问的ip地址,密钥机将密钥传到服务器,具体地,若当前是服务器的qq启动,服务器将播放器对应的标志号码1发送给密钥机,密钥机接收到标志号码1,将对应的密钥a发送给服务器,服务器接收密钥a并保存。

在其中一个实施例中,如图5和图6所示,本申请实施例中的用户终端、服务器和密钥机之间的交互过程包括:当用户终端上的客户端应用1例如qq,发起某一操作,例如登录qq,服务器1接收到用户终端发送的启动信息后启动对应的应用服务1,服务器1发送应用服务1通知信息发送给密钥机,该通知信息中携带应用服务标识和服务器的ip地址,密钥机在接收到服务器发送的应用服务通知信息后,对服务器的ip地址进行验证,如果ip地址跟预先存储的服务器地址相同时,则将应用服务1的应用服务标识对应的密钥返回给服务器1,服务器1接收到密钥并保存在本机内存。进而,服务器1为数据库1配置模板中增加配置项,且根据服务器1保存的密钥和相关加解密算法生成配置项的加解密接口。

可选地,用户终端向服务器发起访问请求,该访问请求中携带有应用服务标识;服务器获取对数据库的访问请求,根据访问请求读取数据库配置模板,根据该数据库配置模板判断该访问请求中应用服务标识对应的数据库表中是否包含有加密存储的字段,若包含,则调用加解密接口对该字段对应的数据进行加解密处理,得到访问结果,若不包含,则按照正常逻辑访问数据库,得到访问结果,将访问结果通知信息返回给用户终端。

举例说明,用户终端的客户端应用1发送访问请求,例如“保存qq账号”,“读取账号密码”,“保存密码”等,服务器1会获取qq应用对服务器数据库1发起的访问请求,进而根据访问请求读取数据库1配置模板,若访问请求访问的数据库1表中包含有加密存储的字段,调用服务器上1加解密接口进行加解密处理。

例如,若“保存密码”为加密字段,此时访问请求为插入操作,调用服务器1上的加解密接口对对应的数据进行加密,再按照正常业务逻辑访问数据库。进而服务器将账号已保存密码的信息发送给客户端应用1。

例如,若“读取账号密码”为加密字段,此时访问请求为读取操作,调用服务器1上的加解密接口对对应的数据进行解密,再按照正常业务逻辑访问数据库。进而服务器将读取的账号密码信息发送给客户端应用1。

例如,若“保存qq账号”不是加密字段,服务器1按正常逻辑访问数据库1,不用进行加解密操作。

此处以服务器1和用户终端上的客户端应用1举例进行说明,在其他实施例中用户终端上的客户端应用2通过服务器2访问数据库2的处理过程相同,在此不再赘述。

应该理解的是,虽然图1-4流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,提供了一种数据库数据加解密装置,包括:请求获取模块、读取模块和调用模块,其中:

请求获取模块11,用于获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识;

读取模块12,用于根据所述访问请求读取数据库配置模板;

调用模块13,用于当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;

其中,所述数据库配置模板为各个数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

在其中一个实施例中,如图8所示,图7所示的装置还包括:

发送模块14,当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收模块15,用于接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

配置模块16,用于在数据库配置模板中为所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

生成模块17,用于根据所述密钥和加解密算法生成所述配置项的加解密接口。

在一个实施例中,在图8所述的装置基础上,接收模块15还用于当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

在其中一个实施例中,在图8所述的装置基础上,如图9所示,调用模块13还包括:

第一调用单元131,用于当根据所述数据库配置模板确定所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为插入或更新操作时,调用所述加解密接口对所述字段对应的数据进行加密,再按照正常业务逻辑访问数据库;

第二调用单元132,用于当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为读取操作时,调用所述加解密接口对所述字段对应的数据进行解密,再按照正常业务逻辑访问数据库。

在一个实施例中,如图10所示,提供了另一种数据库数据加解密装置,包括:发送模块、接收模块、配置模块和生成模块,其中:

发送模块21,用于当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收模块22,用于接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

配置模块23,用于在数据库配置模板中为与所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

生成模块24,用于根据所述密钥和加解密算法生成所述配置项的加解密接口。

在其中一个实施例中,在图10所述的装置基础上,接收模块还用于当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

关于装置的具体限定可以参见上文中对于数据库数据加解密方法的限定,在此不再赘述。上述数据库数据加解密装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据库数据加解密数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库数据加解密方法。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识;

根据所述访问请求读取数据库配置模板;

当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;

其中,所述数据库配置模板为各个数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;在数据库配置模板中为所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;根据所述密钥和加解密算法生成所述配置项的加解密接口。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当根据所述数据库配置模板确定所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为插入或更新操作时,调用所述加解密接口对所述字段对应的数据进行加密,再按照正常业务逻辑访问数据库;当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,且所述访问请求为读取操作时,调用所述加解密接口对所述字段对应的数据进行解密,再按照正常业务逻辑访问数据库。

在一个实施例中,提供了另一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

在数据库配置模板中为与所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

根据所述密钥和加解密算法生成所述配置项的加解密接口。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

当所述通知信息中的服务器地址与所述密钥机上预先存储的服务器地址相同时,接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取应用服务对数据库发起的访问请求,所述访问请求中携带有所述应用服务的应用服务标识;

根据所述访问请求读取数据库配置模板;

当根据所述数据库配置模板确定与所述访问请求中所述应用服务标识对应的数据库表中包含有加密存储的字段,则调用加解密接口对所述字段对应的数据进行加解密处理;

其中,所述数据库配置模板为各个数据库表配置包含有需要加密存储的字段的配置项;所述加解密接口是根据与所述应用服务标识对应的密钥生成的,所述密钥是根据所述应用服务标识从密钥机上加载的。

在一个实施例中,提供了另一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

当检测到应用服务启动时,发送包含所述应用服务的应用服务标识的通知信息到密钥机;

接收并保存所述密钥机响应所述通知信息返回的与所述应用服务标识对应的密钥;

在数据库配置模板中为与所述应用服务标识对应的数据库表配置有需要加密存储的字段的配置项;

根据所述密钥和加解密算法生成所述配置项的加解密接口。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1