本发明涉及数据存储领域,具体涉及一种数据加密、解密方法、装置、计算机设备及存储介质。
背景技术:
1、应《信息安全等级保护评估标准》(gb/t 22239-2017)中的要求,数据的加密存储变得越来越重要。目前,对于业务系统的数据加密入库,通常是对业务系统的业务代码进行修改,使其输出和查询数据的接口具有加解密功能,例如业务系统为账号注册系统,将账号注册系统和数据库的连接接口进行加解密改造,使用户注册的账号信息通过接口加密再保存到数据库。但是这种手段对业务系统的代码入侵多,配置复杂,当加密逻辑需要调整时改造周期长。为解决这一问题,如图1所示,一些技术将orm(object relational mapping,对象关系映射)持久化层(例如mybatis框架)设置在业务系统中,用于管理业务系统和数据库之间的数据传输,并在mybatis框架中添加mybatis插件,使mybatis插件作为拦截器,在数据通过mybatis框架到数据库的过程中对其半路拦截,经过mybatis插件为数据添加加密逻辑,再将加密后的数据发送到数据库中,这种方法实现了加解密逻辑和业务系统解耦,使业务系统的代码不需要改造。但是当数据库对业务系统的加密要求较高时,mybatis插件的加密逻辑开发任务大、开发任务复杂,mybatis插件支持的加密逻辑有限,难以达到加密要求。
技术实现思路
1、有鉴于此,本发明提供了一种数据加密、解密方法、装置、计算机设备及存储介质,解决了相关技术加密逻辑配置难度大,难以达到加密要求的问题。
2、第一方面,本发明提供了一种数据加密方法,应用于加密插件,加密插件部署在orm持久化层,方法包括:拦截业务系统通过orm持久化层发送的目标数据,并判断目标数据是否需要加密;当目标数据需要加密时,获取通信配置参数;根据通信配置参数与硬件加密机建立通信连接;将目标数据发送至硬件加密机,以使硬件加密机对目标数据进行加密,并将加密得到的密文数据发送至数据库。
3、本发明实施例提供了一种加密插件和硬件加密机结合的加密方法为入库数据进行加密。在加密插件中设有通信模块,用于根据预先配置的通信配置参数确定对应的硬件加密机并与之建立通信连接,当业务系统需要上传目标数据到数据库时,目标数据首先到orm持久化层,通过加密插件拦截目标数据,之后插件自身不对目标数据进行加密,而是将目标数据发送到预先建立通信连接的硬件加密机,使用硬件加密机大量且复杂的加密逻辑对数据进行加密,当数据加密完成后,密文数据不再返回加密插件通过加密插件进入数据库,而是通过硬件加密机直接进入数据库。一方面,基于硬件加密机的加密功能实现了较高的加密要求,同时插件开发人员无需开发复杂加密逻辑,降低了开发难度;另一方面,相比单独使用硬件加密机,硬件加密机不再通过jar包和http协议的形式与业务系统进行通信,只需通过tcp协议与加密插件进行数据传输即可,降低配置难度。
4、在一种可选的实施方式中,获取通信配置参数,包括:接收业务系统发送的通信配置文件,通信配置文件由预设的监控管理系统配置得到;解析通信配置文件,得到通信配置参数,通信配置参数包括硬件加密机的ip地址、连接数调度表和密钥唯一id,连接数调度表用于调度硬件加密机支持的最大信道数量,密钥唯一id用于确定硬件加密机中对应的加密逻辑。
5、在一种可选的实施方式中,根据通信配置参数与硬件加密机建立通信连接,包括:获取业务系统的当前业务吞吐量;根据当前业务吞吐量从连接数调度表中查询当前连接数;按照当前连接数表示的信道数量与硬件加密机建立通信连接。
6、在一种可选的实施方式中,方法还包括:接收硬件加密机返回的密文数据,并将密文数据发送至监控管理系统,以使监控管理系统对密文数据进行展示;统计密文数据生成过程的性能指标,并将性能指标发送至监控管理系统,以使监控管理系统根据性能指标判断是否加密异常;当接收到监控管理系统发送的加密异常通知时,熔断加密链路,以使密文数据不能应用于其他系统。
7、在一种可选的实施方式中,通过密文数据判断是否加密异常,包括:判断加密耗时和加密错误量是否超过对应的耗时阈值和错误量阈值;当加密耗时和加密错误量超过对应的耗时阈值和错误量阈值时,判定出现加密异常。
8、第二方面,本发明提供了一种数据解密方法,应用于加密插件,加密插件部署在orm持久化层,方法包括:拦截业务系统发送的查询信息,并将查询信息作为目标数据,通过第一方面以及第一方面任意一种可选实施方式提供的数据加密方法,将查询信息加密后的查询密文发送至数据库,以使数据库根据查询密文从存储的密文数据中搜索包括查询密文的目标密文数据;接收数据库发送的目标密文数据;将目标密文数据发送至硬件加密机,以使硬件加密机对目标密文数据进行解密得到明文数据,硬件加密机是查询信息加密过程中建立了通信连接的硬件加密机;接收硬件加密机发送的明文数据。
9、当进行数据查询时,本实施例首先通过上述实施例的加密方法对业务系统发送的查询信息进行加密,得到查询密文,然后从数据库中搜索包括查询密文的目标密文数据,数据库将目标密文数据返回至加密插件,因为在加密过程中加密插件已经与硬件加密机建立了通信连接,从而加密插件可将目标密文数据发送至对应硬件加密机对其进行解密。通过这种方式,基于硬件加密机的解密功能对复杂的目标密文数据进行了解密,同时插件开发人员无需开发复杂解密逻辑,降低了开发难度;另一方面,相比单独使用硬件加密机,硬件加密机不再通过jar包和http协议的形式与业务系统进行通信,只需通过tcp协议与加密插件进行数据传输即可,降低配置难度。
10、第三方面,一种数据加密装置,应用于加密插件,加密插件部署在orm持久化层,装置包括:加密识别模块,用于拦截业务系统通过orm持久化层发送的目标数据,并判断目标数据是否需要加密;参数配置模块,用于当目标数据需要加密时,获取通信配置参数;通信模块,用于根据通信配置参数与硬件加密机建立通信连接;加密模块,用于将目标数据发送至硬件加密机,以使硬件加密机对目标数据进行加密,并将加密得到的密文数据发送至数据库。
11、第四方面,一种数据解密装置,应用于加密插件,加密插件部署在orm持久化层,方法包括:查询信息加密模块,用于拦截业务系统发送的查询信息,并将查询信息作为目标数据,通过第一方面以及第一方面任意一种可选实施方式提供的数据加密方法,将查询信息加密后的查询密文发送至数据库,以使数据库根据查询密文从存储的密文数据中搜索包括查询密文的目标密文数据;查询结果接收模块,用于接收数据库发送的目标密文数据;解密模块,用于将目标密文数据发送至硬件加密机,以使硬件加密机对目标密文数据进行解密得到明文数据,硬件加密机是查询信息加密过程中建立了通信连接的硬件加密机;解密结果接收模块,用于接收硬件加密机发送的明文数据。
12、第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面、第二方面或其对应的任一实施方式的方法。
13、第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面、第二方面或其对应的任一实施方式的方法。