CN117992991A - 基于多粒度的数据库数据加密方法及设备 - Google Patents
基于多粒度的数据库数据加密方法及设备 Download PDFInfo
- Publication number
- CN117992991A CN117992991A CN202410401365.9A CN202410401365A CN117992991A CN 117992991 A CN117992991 A CN 117992991A CN 202410401365 A CN202410401365 A CN 202410401365A CN 117992991 A CN117992991 A CN 117992991A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- granularity
- configuration
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 235000019580 granularity Nutrition 0.000 title abstract description 110
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于多粒度的数据库数据加密方法及设备,所述方法包括:获取用于对数据库数据进行加密的配置数据,其中所述配置数据包括多个粒度层级、同一粒度层级下的加密对象;利用加密算法,分别对所述配置数据中的各个加密对象进行加密。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种基于多粒度的数据库数据加密方法及设备。
背景技术
现有数据库技术,对数据库的保密技术中,一般是通过设置访问权限来对数据进行保密,例如对数据库使用者的权限进行分级,不同的数据库使用者角色具有不同的权限,从而达到通过控制访问权限提高数据的安全性,但这种方式很容易造成敏感数据的泄露,无法保证数据库中敏感数据的安全性。
发明内容
为了解决现有存在的技术问题,本发明实施例提供一种基于多粒度的数据库数据加密方法及电子设备,可以减少数据的泄露,提高数据安全。
第一方面,提供一种基于多粒度的数据库数据加密方法,包括:获取用于对数据库数据进行加密的配置数据,其中所述配置数据包括多个粒度层级、同一粒度层级下的加密对象;利用加密算法,分别对所述配置数据中的各个加密对象进行加密。
第二方面,提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请实施例所提供的基于多粒度的数据库数据加密方法的步骤。
在上述实施例中,通过对数据库数据按照粒度层级的方式进行加密,粒度层级用于表示加密对象的数据范围,从而可以基于粒度层级,对数据库数据不同数据范围内的加密对象进行加密,不同粒度层级下的加密对象的密钥不同,同一粒度层级下的不同加密对象的密钥也不同,这样可以减少数据的泄露。
附图说明
图1为一实施例中基于多粒度的数据库数据加密方法的应用环境图;
图2为一实施例中基于多粒度的数据库数据加密方法的流程图;
图3为一实施例中基于多粒度的数据库数据加密装置的示意图;
图4为一实施例中电子设备的示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明的保护范围。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
在以下的描述中,涉及到“一些实施例”的表述,其描述了所有可能实施例的子集,但是应当理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
参阅图1,为一实施例中基于多粒度的数据库数据加密方法的应用环境图。应用环境图可以包括业务系统100、数据库系统200及基于多粒度的数据库数据加密系统300(以下简称加密系统300)。其中业务系统100与数据库系统200进行数据通信,业务系统100是面向用户使用的系统,数据库系统200是建立在关系数据库模型基础上的数据库,给业务系统100提供数据支持。业务系统100基于数据库系统200提供的数据向用户提供各项功能。业务系统100基于用户的功能使用向数据库系统200请求数据。数据库系统200根据请求,并利用数据库查询语言查询与请求相关的数据。加密系统300与数据库系统200进行数据通信,加密系统300通过本申请实施例中的基于多粒度的数据库数据加密方法对数据库系统200中的数据库数据进行加密,以提高业务系统100的数据的安全性。数据库系统200可以是oracle数据库、db2数据块、SQL Server数据库、MySQL等数据库。业务系统100、基于多粒度的数据库数据加密系统300可以是指逻辑上相互独立的软件、小程序等等。业务系统100、数据库系统200、加密系统300、可以同时或者部分位于同一电子设备中,也可以分别位于不同的电子设备中,保证业务系统100、数据库系统200、加密系统300能够进行数据通信即可。在一些实施例中,加密系统300可以位于数据库系统200中,作为数据库系统200的一种加密工具。
请参阅图2,为本申请一实施例提供的基于多粒度的数据库数据加密方法的流程图。基于多粒度的数据库数据加密方法应用于电子设备中,该基于多粒度的数据库数据加密方法包括如下步骤:
S11、获取用于对数据库数据进行加密的配置数据,其中所述配置数据包括多个粒度层级、同一粒度层级下的加密对象。
在本实施例中,数据库系统可以包括一个或多个数据库数据,也可以包括一个或者多个数据库集群,在每个数据库集群下包括多个数据库。粒度层级用于表示加密对象的数据范围,数据范围越大,粒度越大,粒度层级越大。多个粒度层级包括数据库集群级、数据库级、表空间级、表对象级、列对象级。数据库集群级的层级最大,列对象级的层级最小。加密对象包括但不限于数据库集群、数据库、表空间、表对象、列对象等等,例如若加密对象属于数据库集群层级,则该加密对象为某个数据库集群。若加密对象属于数据库级,则该加密对象为某个数据库加密。若加密对象属于表空间级,则该加密对象为某个表的存储空间。若加密对象属于表对象级,则该加密对象为某个表对象加密。若加密对象属于列对象级,则该加密对象为某个列对象加密。
对于同一粒度层级下的加密对象可以由一个或者多个,例如对于表对象级而言,若对表1的对象进行加密,可以对表1的某个函数加密、对表1的某个视图进行加密等等。
在一些实施例中,获取配置数据的方式有很多,包括但不限于:通过用户界面获取用户自定义的配置数据、通过配置文件获取用户自定义的配置数据等等。可以在创建加密对象时,基于配置数据对加密对象进行加密。
S12、利用加密算法,分别对所述配置数据中的各个加密对象进行加密。
在本实施例中,配置数据包括多个粒度层级下的加密对象,不同粒度层级下的加密对象的密钥不同,同一粒度层级下的不同加密对象的密钥也不同,这样可以保证数据安全的隔离,减少数据的泄露。
在上述实施例中,通过对数据库数据按照粒度层级的方式进行加密,粒度层级用于表示加密对象的数据范围,从而可以基于粒度层级,对数据库数据不同数据范围内的加密对象进行加密,不同粒度层级下的加密对象的密钥不同,同一粒度层级下的不同加密对象的密钥也不同,这样可以保证数据安全的隔离,减少数据的泄露。
在一些实施例中,所述获取用于对数据库数据进行加密的配置数据包括:
在用户界面上分级显示各个粒度层级下的数据对象,获取对各个粒度层级下的配置操作,响应于所述各个粒度层级下的配置操作,生成配置数据。
其中基于多粒度的数据库数据加密方法对应的应用程序可以提供用户界面(userinterface,UI),是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图像、文本、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、输入框、按钮(button)、滚动条(scrollbar)、图像和文本。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,HTML),层叠样式表(cascading stylesheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。
用户界面上分级显示各个粒度层级下的数据对象,例如在用户界面上分别显示数据库集群级下的数据对象、数据库级的数据对象、表空间级的数据对象、表对象级的数据对象、列对象级的数据对象。用户基于用户界面上显示的内容,用户可以依次选中各粒度层级下需要加密的加密对象,响应于用户对各个粒度层级下的配置操作,生成对应的配置数据。
可选的,在用户界面上显示各个粒度层级下的数据对象的简要提示,例如在数据对象的旁边显示内容简要图标,在用户需要了解该数据对象的内容决定是否需要加密时,可以选中该数据对象对应的内容简要图标,响应于用户选择的内容简要图标,将该内容简要图标对应的数据对象的内容显示给用户,以便于用户决策是否对该数据对象进行加密。
在上述实施例中,通过用户界面提供直观化的各个粒度层级下的数据对象,便于用户能够直观的基于用户界面进行配置,从而提高数据加密的可操作性。
在一些实施例中,所述获取用于对数据库数据进行加密的配置数据包括:
获取当前粒度层级的配置操作,若当前粒度层级不是最小粒度层级且加密配置未完成时,将当前粒度层级对应的配置界面切换至当前粒度层级对应的下一粒度层级对应的配置界面,并获取所述下一粒度层级的配置操作,所述下一粒度层级的数据范围小于所述当前粒度层级,响应于所述当前粒度层级的配置操作及所述下一粒度层级的配置操作,生成配置数据。
每个粒度层级对应一用户界面,相邻粒度层级间的用户界面可以相互切换,例如当前粒度层级为数据库集群级,响应于用户对数据库集群级的配置完成操作,自动将用户界面切换至数据库级对应的用户界面,直至到获取到最小粒度层级的配置完成操作。
在上述实施例中,配置粒度层级间的用户界面可以自动按照粒度从大到小按照顺序切换,从而使用户能够有序配置数据库系统中的各种数据,从而提高数据加密的可操作。
在一些实施例中,所述获取用于对数据库数据进行加密的配置数据包括:
获取配置文件,从所述配置文件中确定各个粒度层级对应的数据位置,读取各个粒度层级对应的数据位置处的加密对象,基于各个粒度层级对应的加密对象生成所述配置数据。
每个数据对象对应一个数据标识,通过该数据标识能够识别数据对象。可以预先设置配置文件的预设规则,该预设规则用于解析配置文件,解析配置文件后,可以依次读取各个粒度层级下的加密对象。例如该配置文件为excel表格,第一行为各个粒度层级对应的标识,每一列对应一个粒度层级,例如,第一列为数据库集群级、第二列为数据库级、第三列为表空间级、第四列为表对象级、第五列为列对象级。第一列下分别有数据库集群A1、数据库集群C1,那么读取配置文件后,需要对数据库集群A1、数据库集群C1进行加密。
读取配置文件后,根据预设规则,先从第一行中识别出各个粒度层级对应的标识的关键词,然后再依次读取每列下的数据对象对应的数据标识,从而将对应的数据对象设置为加密对象。
在上述实施例中,也可以通过预设规则事先设置配置文件,然后自动解析配置文件,从而生成配置数据,从而用户能够有序配置数据库系统中的各种数据,从而提高数据加密的可操作。
由于与数据库系统进行数据通信的业务系统的场景可以是不同,例如业务系统可以是一个在线购物平台上商家使用的系统,或买家使用的系统,或物流工作者使用的系统。在业务场景不同时,业务系统对数据库数据需求也不同。例如对于在线购物平台中的商家使用的系统,卖家的个人信息就是敏感需要,需要加密,及买家使用的系统,其他买家的个人信息、商家的隐私信息等等都是加密数据。因此,需要根据不同的业务场景对数据库数据进行加密。
在一些实施例中,所述获取用于对数据库数据进行加密的配置数据包括:
响应于用户对业务系统的选择操作,基于所述选择操作,获取目标业务系统及目标业务系统所关联的数据库数据,基于粒度层级显示目标业务系统所关联的数据库数据,响应于对关联的数据库数据的配置操作,生成配置数据。
可以在用户界面上显示多个业务系统以供用户选择需要进行加密的业务系统下的数据,基于用户的选择操作获取到目标业务系统后,自动调出该目标业务系统关联的所有数据库数据,然后基于粒度层级显示目标业务系统所关联的数据库数据。例如目标业务系统关联的数据库数据为数据库A下的表A1及表A2,数据库B下的表B1及表B2下的列D,那么可以在数据库级下显示数据库A及数据库B,在表对象级下分别显示表A1、表A2、表B1及表B2,列对象级下显示D。
可以理解的是,对上述业务系统下的关联的所有数据库数据进行配置,可以与上述至少一个实施例提供的生成配置数据的方法也可以用于该实施例中,从而实现在在用户界面上分级显示目标业务系统关联的数据库数据的数据对象,或者,配置粒度层级间的用户界面可以自动按照粒度从大到小按照顺序切换,有效配置目标业务系统关联的数据库数据中需要加密的数据对象,或者基于配置文件生成配置数据。
在上述实施例中,可以从业务系统角度出发,自动调出业务系统关联的数据库数据并在界面上基于粒度层级进行显示,便于用户自定义业务系统需要加密的数据对象,从而用户能够基于业务系统角度配置与业务系统关联的数据,从而提高数据加密的可操作。
在一些实施例中,在利用加密算法,分别对配置数据中的各个加密对象进行加密之前,所述方法还包括:
判断所述配置数据中所述多个粒度层级下的加密对象对应的数据是否存在包含关系;
在所述多个粒度层级下的加密对象间存在包含关系时,将存在包含关系的加密对象显示给用户,获取用户基于所述在包含关系的加密对象中选定的删除对象,根据所述删除对象更新所述配置数据;或
在所述多个粒度层级下的加密对象间存在包含关系时,保留存在包含关系的加密对象中对应的粒度层级较大的加密对象,将对应的粒度层级较小的加密对象从所述配置数据中删除。
不同的粒度层级之间数据不允许重叠,例如已经在表空间级设置了加密,不允许该表空间下面的表级或列级再次设置加密选项,已经对数据库集群设置了加密,那么数据库集群下的数据库数据就不再加密。可以在用户基于用户界面配置加密对象时,判断所述配置数据中所述多个粒度层级下的加密对象对应的数据是否存在包含关系。例如在配置完数据库级下的加密对象后,在配置表空间级下的加密对象时,就自动判断用户选中的表空间级下的加密对象与数据库级下的加密对象对应的数据是否有包含关系。在所述多个粒度层级下的加密对象间存在包含关系时,在用户界面上显示存在包含关系的加密对象,例如数据库集群B已经加密了,用户又将数据库集群B下的数据库C进行了加密,那么数据库集群B对应的数据实际上包含数据库C的数据,对数据库集群B已经加密了,就无需再对数据库C进行加密。并提示用户数据库集群B对应的数据已经加密,并在用户界面上显示数据库集群B及数据库C的加密设置项以供用户重新定义加密项。在一可选实施例中,也可以保留粒度层级较大的加密对象,将对应的粒度层级较小的加密对象从所述配置数据中删除,例如将数据库集群B的加密设置保留,将数据库C的加密设置删除。
在上述实施例中,在基于配置数据进行加密前,自动检查配置数据中是否存在重复的不必要的加密项,从而将重叠的加密项删除,从而提高加密效率。
现有技术中,对数据库的加密一般不适合大批量的数据加解密,加密速度较慢。在一些实施例中,所述利用加密算法,分别对所述配置数据中的各个加密对象进行加密包括:
将所述配置数据中的各个加密对象对应的数据进行分组,得到多个分组数据;
使用多个并行线程或者进程,分别对不同的分组数据进行加密,得到加密数据,其中每个线程负责加密一个数据分组。
通过一定的划分规则,可以将配置数据中的加密对象对应的数据划分成多个分组数据,例如可以按照主键范围或其他规则进行划分。在数据库中使用多个并行的线程或进程,分别对不同的数据分组进行加密操作。每个线程负责加密一个数据分组,从而提高加密速度。
在上述实施例中,通过一定的划分规则,可以将配置数据中的加密对象对应的数据划分成多个分组数据,分别对不同的数据分组进行加密操作。每个线程负责加密一个数据分组,从而提高加密速度。
可选的,同一粒度层级下不同加密对象具有不同的密钥,所述利用加密算法,分别对所述配置数据中的各个加密对象进行加密包括:
对于每个加密对象,随机选择一个整数d作为每个加密对象的私钥,其中满足 1<d<n-1,其中 n 为椭圆曲线的阶,生成与加密对象的私钥对应的公钥Q = [d]G,其中 G 为椭圆曲线的基点,[d]表示对基点 G 进行 d 次点乘运算;
分别利用各个加密对象的公钥对对应的数据加密。
其中加密算法包括但不限于SM2加密算法。首先需要生成非对称加密算法所需的密钥,即公钥和私钥对。这些密钥对通常以文件或二进制数据的形式存储在数据库服务器的安全位置,确保只有授权的用户或应用程序可以访问这些密钥。通过使用数据库内置的SM2_ENCRYPT函数,各个分组数据的公钥对各个分组数据进行加密,从而实现自动加密。
在一可选实施例中,公钥和私钥的管理有两个选项,用户可以自定义密钥的管理方式,其中管理方式可以存储在数据库中的安全表中或者使用数据库提供的密钥管理工具来管理,也可以采用外部的密钥管理工具来管理,数据库提供相应的调用接口。
在上述实施例中,采用非对称加密方法,可以提高数据安全性。
在一些实施例中,所述方法还包括:
获取访问密钥数据的访问对象;
判断所述访问对象是否是授权对象,在所述访问对象是授权对象时,获取所述访问对象能访问的密钥权限,所述密钥权限包括能访问的加密对象;
根据所述密钥权限对应的加密对象,调取所述加密对象对应的私钥数据;
基于所述加密对象对应的私钥数据,对所述加密对象对应的数据进行解密。
每个访问对象可以对应不同的加密对象访问权限,因此,需要使用加密对象对应的私钥才能访问对应的加密对象。在使用私钥解密数据时,使用数据库内置的SM2_DECRYPT函数,传入加密后的数据和私钥,即可对数据进行自动解密。
在一些实施例中,在加密对象为表对象时,将表对象对应的索引数据进行加密,从而减少敏感数据的泄露。
在一些实施例中,在基于配置数据完成加密操作后,在后续数据库数据使用过程中,还可以根据业务需要动态调整加密数据,所述方法还包括:
获取指示需要更改加密项的目标加密对象,将所述目标加密对象删除,并重新创建所述目标加密对象,并重新配置所述目标加密对象的配置数据;或
获取按照预设更新规则配置的更新文件,基于所述更新文件更改加密项,其中所述更新文件包括需要更改的已加密对象、新增加的加密对象。
对于更新文件,可以由用户按照预设更新规则根据业务需要自定义需要更改的加密项。
在上述实施例中,可以动态调整数据库数据的加密配置,从而提高加密的效率及减少数据的泄露。
请参阅图3,本申请一实施例提供一种基于多粒度的数据库数据加密装置,包括:获取模块31、用于获取用于对数据库数据进行加密的配置数据,其中所述配置数据包括多个粒度层级、同一粒度层级下的加密对象;加密模块32、用于利用加密算法,分别对所述配置数据中的各个加密对象进行加密。
可选的,获取模块31还用于:
在用户界面上分级显示各个粒度层级下的数据对象,获取对各个粒度层级下的配置操作,响应于所述各个粒度层级下的配置操作,生成配置数据;或
获取当前粒度层级的配置操作,若当前粒度层级不是最小粒度层级且加密配置未完成时,将当前粒度层级对应的配置界面切换至当前粒度层级对应的下一粒度层级对应的配置界面,并获取所述下一粒度层级的配置操作,所述下一粒度层级的数据范围小于所述当前粒度层级,响应于所述当前粒度层级的配置操作及所述下一粒度层级的配置操作,生成配置数据。
可选的,获取模块31还用于:
响应于用户对业务系统的选择操作,基于所述选择操作,获取目标业务系统及目标业务系统所关联的数据库数据,基于粒度层级显示目标业务系统所关联的数据库数据。
可选的,获取模块31还用于:
获取配置文件,从所述配置文件中确定各个粒度层级对应的数据位置,读取各个粒度层级对应的数据位置处的加密对象,基于各个粒度层级对应的加密对象生成所述配置数据。
可选的,加密模块32还用于:
判断所述配置数据中所述多个粒度层级下的加密对象对应的数据是否存在包含关系;
在所述多个粒度层级下的加密对象间存在包含关系时,将存在包含关系的加密对象显示给用户,获取用户基于所述在包含关系的加密对象中选定的删除对象,根据所述删除对象更新所述配置数据;或
在所述多个粒度层级下的加密对象间存在包含关系时,保留存在包含关系的加密对象中对应的粒度层级较大的加密对象,将对应的粒度层级较小的加密对象从所述配置数据中删除。
可选的,加密模块32还用于:
将所述配置数据中的各个加密对象对应的数据进行分组,得到多个分组数据;
使用多个并行线程或者进程,分别对不同的分组数据进行加密,得到加密数据,其中每个线程负责加密一个数据分组。
可选的,加密模块32还用于:
对于每个加密对象数据,随机选择一个整数d作为每个加密对象的私钥,其中满足1<d<n-1,其中 n 为椭圆曲线的阶,生成与每个加密对象的私钥对应的公钥Q = [d]G,其中G 为椭圆曲线的基点,[d]表示对基点 G 进行 d 次点乘运算;
分别利用各个加密对象的公钥对对应的数据加密。
可选的,加密模块32还用于:
获取访问密钥数据的访问对象;
判断所述访问对象是否是授权对象,在所述访问对象是授权对象时,获取所述访问对象能访问的密钥权限,所述密钥权限包括能访问的加密对象;
根据所述密钥权限对应的加密对象,调取所述加密对象对应的私钥数据;
基于所述加密对象对应的私钥数据,对所述加密对象对应的数据进行解密。
可选的,加密模块32还用于:
获取指示需要更改加密项的目标加密对象,将所述目标加密对象删除,并重新创建所述目标加密对象,并重新配置所述目标加密对象的配置数据;或
获取按照预设更新规则配置的更新文件,基于所述更新文件更改加密项,其中所述更新文件包括需要更改的已加密对象、新增加的加密对象。
本领域技术人员可以理解的是,图3中基于多粒度的数据库数据加密装置的结构并不构成对基于多粒度的数据库数据加密装置的限定,所述各个模块可以全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的控制器中,也可以以软件形式存储于计算机设备中的存储器中,以便于控制器调用执行以上各个模块对应的操作。在其他实施例中,基于多粒度的数据库数据加密装置中可以包括比图示更多或更少的模块。
请参阅图4,本申请实施例的另一方面,还提供了一种电子设备500,包括存储器3011和处理器3012,存储器3011存储有计算机程序,计算机程序被处理器执行时,使得处理器212执行本申请上述任一实施例所提供的基于多粒度的数据库数据加密方法的步骤。电子设备500可包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,一对智能眼镜或智能手表)或类似设备。
其中基于多粒度的数据库数据加密设备包括但不限于:嵌入式设备、电子设备。
其中处理器3012是控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器3011内的软件程序和/或模块,以及调用存储在存储器3011内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器3012可包括一个或多个处理核心;优选的,处理器3012可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器3012中。
存储器3011可用于存储软件程序以及模块,处理器3012通过运行存储在存储器3011的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器3011可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器3011可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器3011还可以包括存储器控制器,以提供处理器3012对存储器3011的访问。
本申请实施例另一方面,还提供一种存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请上述任一实施例所提供的基于多粒度的数据库数据加密方法的步骤。
本领域普通技术人员可以理解实现上述实施例所提供的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。
Claims (10)
1.一种基于多粒度的数据库数据加密方法,其特征在于,包括:
获取用于对数据库数据进行加密的配置数据,其中所述配置数据包括多个粒度层级、同一粒度层级下的加密对象;
利用加密算法,分别对所述配置数据中的各个加密对象进行加密。
2.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述获取用于对数据库数据进行加密的配置数据包括:
在用户界面上分级显示各个粒度层级下的数据对象,获取对各个粒度层级下的配置操作,响应于所述各个粒度层级下的配置操作,生成配置数据;或
获取当前粒度层级的配置操作,若当前粒度层级不是最小粒度层级且加密配置未完成时,将当前粒度层级对应的配置界面切换至当前粒度层级对应的下一粒度层级对应的配置界面,并获取所述下一粒度层级的配置操作,所述下一粒度层级的数据范围小于所述当前粒度层级,响应于所述当前粒度层级的配置操作及所述下一粒度层级的配置操作,生成配置数据。
3.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述获取用于对数据库数据进行加密的配置数据包括:
响应于用户对业务系统的选择操作,基于所述选择操作,获取目标业务系统及目标业务系统所关联的数据库数据,基于粒度层级显示目标业务系统所关联的数据库数据。
4.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述获取用于对数据库数据进行加密的配置数据包括:
获取配置文件,从所述配置文件中确定各个粒度层级对应的数据位置,读取各个粒度层级对应的数据位置处的加密对象,基于各个粒度层级对应的加密对象生成所述配置数据。
5.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,在利用加密算法,分别对配置数据中的各个加密对象进行加密之前,所述方法还包括:
判断所述配置数据中所述多个粒度层级下的加密对象对应的数据是否存在包含关系;
在所述多个粒度层级下的加密对象间存在包含关系时,将存在包含关系的加密对象显示给用户,获取用户基于所述在包含关系的加密对象中选定的删除对象,根据所述删除对象更新所述配置数据;或
在所述多个粒度层级下的加密对象间存在包含关系时,保留存在包含关系的加密对象中对应的粒度层级较大的加密对象,将对应的粒度层级较小的加密对象从所述配置数据中删除。
6.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述利用加密算法,分别对所述配置数据中的各个加密对象进行加密包括:
将所述配置数据中的各个加密对象对应的数据进行分组,得到多个分组数据;
使用多个并行线程或者进程,分别对不同的分组数据进行加密,得到加密数据,其中每个线程负责加密一个数据分组。
7.如权利要求6所述的基于多粒度的数据库数据加密方法,其特征在于,同一粒度层级下不同加密对象具有不同的密钥,所述利用加密算法,分别对所述配置数据中的各个加密对象进行加密包括:
对于每个加密对象,随机选择一个整数d作为每个加密对象的私钥,其中满足 1 < d <n-1,其中 n 为椭圆曲线的阶,生成与每个加密对象的私钥对应的公钥Q = [d]G,其中 G为椭圆曲线的基点,[d] 表示对基点 G 进行 d 次点乘运算;
分别利用各个加密对象的公钥对对应的数据加密。
8.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述方法还包括:
获取访问密钥数据的访问对象;
判断所述访问对象是否是授权对象,在所述访问对象是授权对象时,获取所述访问对象能访问的密钥权限,所述密钥权限包括能访问的加密对象;
根据所述密钥权限对应的加密对象,调取所述加密对象对应的私钥数据;
基于所述加密对象对应的私钥数据,对所述加密对象对应的数据进行解密。
9.如权利要求1所述的基于多粒度的数据库数据加密方法,其特征在于,所述方法还包括:
获取指示需要更改加密项的目标加密对象,将所述目标加密对象删除,并重新创建所述目标加密对象,并重新配置所述目标加密对象的配置数据;或
获取按照预设更新规则配置的更新文件,基于所述更新文件更改加密项,其中所述更新文件包括需要更改的已加密对象、新增加的加密对象。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410401365.9A CN117992991B (zh) | 2024-04-03 | 2024-04-03 | 基于多粒度的数据库数据加密方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410401365.9A CN117992991B (zh) | 2024-04-03 | 2024-04-03 | 基于多粒度的数据库数据加密方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117992991A true CN117992991A (zh) | 2024-05-07 |
CN117992991B CN117992991B (zh) | 2024-06-25 |
Family
ID=90902341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410401365.9A Active CN117992991B (zh) | 2024-04-03 | 2024-04-03 | 基于多粒度的数据库数据加密方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992991B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504706A (zh) * | 2009-03-03 | 2009-08-12 | 中国科学院软件研究所 | 数据库信息加密方法和系统 |
CN114676394A (zh) * | 2022-03-21 | 2022-06-28 | 杭州海康机器人技术有限公司 | 加密方法、装置及电子设备 |
CN115618379A (zh) * | 2022-09-28 | 2023-01-17 | 方盈金泰科技(北京)有限公司 | 面向HBase数据库的多粒度数据透明加解密方法及系统 |
-
2024
- 2024-04-03 CN CN202410401365.9A patent/CN117992991B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504706A (zh) * | 2009-03-03 | 2009-08-12 | 中国科学院软件研究所 | 数据库信息加密方法和系统 |
CN114676394A (zh) * | 2022-03-21 | 2022-06-28 | 杭州海康机器人技术有限公司 | 加密方法、装置及电子设备 |
CN115618379A (zh) * | 2022-09-28 | 2023-01-17 | 方盈金泰科技(北京)有限公司 | 面向HBase数据库的多粒度数据透明加解密方法及系统 |
Non-Patent Citations (2)
Title |
---|
周建伟 等: "基于USB Key的数据库细粒度加解密技术研究", 《北华航天工业学院学报》, no. 04, 28 August 2016 (2016-08-28), pages 21 - 23 * |
陈琳 等: "通用数据库加密模块的设计", 《空军雷达学院学报》, no. 01, 30 March 2007 (2007-03-30), pages 63 - 65 * |
Also Published As
Publication number | Publication date |
---|---|
CN117992991B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3356964B1 (en) | Policy enforcement system | |
WO2020253061A1 (zh) | 页面生成方法、装置、计算机设备和存储介质 | |
US20190036941A1 (en) | Policy management, enforcement, and audit for data security | |
JP6775013B2 (ja) | データテーブルを共有するためのサポートを有する構成の自己記述 | |
US11205223B2 (en) | Blockchain-based service processing methods and apparatuses | |
CN111680477A (zh) | 导出电子表格文件的方法、装置、计算机设备及存储介质 | |
CN114491639A (zh) | 支持联合搜索的对受保护字段的自动操作检测 | |
WO2021013057A1 (zh) | 数据管理方法、装置、设备与计算机可读存储介质 | |
CN114327435A (zh) | 技术文档生成方法、装置、计算机可读存储介质 | |
CN114155921A (zh) | 医疗表单的配置方法、装置、计算机设备和存储介质 | |
CN117992991B (zh) | 基于多粒度的数据库数据加密方法及设备 | |
US10635458B2 (en) | Systems and methods for generating a self-updating maintenance page | |
CN115758464A (zh) | 一种基于配置的数据脱敏管理方法、装置、介质及设备 | |
CN115269529A (zh) | 文档处理方法、装置、电子设备及存储介质 | |
CN114329152A (zh) | 基于浏览器引擎的应用程序生成方法、装置、设备和介质 | |
US9245138B2 (en) | Shared preferences in a multi-application environment | |
US20240330280A1 (en) | Content collaboration platform with interface for conducting structured queries and embedding issue content of an issue tracking platform | |
US11671529B2 (en) | Cross-channel configurable navigation | |
RU2715287C1 (ru) | Способ, терминал и сервер для отображения информации | |
US20240220486A1 (en) | User interface for formulating structured queries and generating graphical objects within a content collaboration platform | |
CN112860666A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN115510130A (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
JP2024057139A (ja) | 電子契約プログラム、情報処理装置、情報処理システムの製造方法、情報処理方法 | |
CN114741713A (zh) | 数据库加密方法、装置、电子设备和存储介质 | |
CN114528046A (zh) | 视图加载方法、系统、计算机及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |