CN113420030A - 数据存储方法、装置、设备及存储介质 - Google Patents
数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113420030A CN113420030A CN202110720134.0A CN202110720134A CN113420030A CN 113420030 A CN113420030 A CN 113420030A CN 202110720134 A CN202110720134 A CN 202110720134A CN 113420030 A CN113420030 A CN 113420030A
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- field
- type
- acquiring
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013500 data storage Methods 0.000 title claims abstract description 41
- 238000004458 analytical method Methods 0.000 claims abstract description 47
- 230000007246 mechanism Effects 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 15
- 230000010354 integration Effects 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 51
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000006978 adaptation Effects 0.000 description 7
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Storage Device Security (AREA)
Abstract
本申请为数据存储技术领域,本申请提供了一种数据存储方法、装置、设备及存储介质,其中,所述方法包括:获取数据,通过反射机制获取数据中包含的多个字段的字段类型;根据字段类型确定将每个字段设置到数据对象中的处理规则;采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个数据对象的对象类型;通过枚举每一个对象类型的方式获取对象类型对应的解析路径,利用相应的解析路径对对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对符合加密算法的数据对象进行加密;将加密后的数据对象存储至数据库中。本申请减少了业务逻辑层的集成工作量,提高了数据存储效率。
Description
技术领域
本申请涉及数据存储技术领域,具体而言,本申请涉及一种数据存储方法、装置、设备及存储介质。
背景技术
随着计算机技术和互联网技术地不断发展,数据的存储逐渐减少了纸本形式的存储方式,更多使用的是进行电子化存储。比如,将数据存储至数据库中,后续,用户则可以通过网络访问数据库,来便捷地获取所存储的数据。出于数据安全的角度,电子化存储数据往往会涉及到安全加密的问题。
数据库安全领域一直在致力于解决数据库网络安全与权限管理,现有对数据进行加密的方式是:在服务端的业务逻辑层中对要加密的字段进行自定义加密,然后存储至数据库,读取出来再进行解密处理,对业务逻辑层的耦合度要求高,存储效率较低。
发明内容
本申请的主要目的为提供一种数据存储方法、装置、设备及存储介质,以提高数据存储效率。
为了实现上述发明目的,本申请提供一种数据存储方法,其包括以下步骤:
获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
将加密后的所述数据对象存储至数据库中。
进一步地,所述将加密后的所述数据对象存储至数据库中的步骤之后,还包括:
响应于用户的数据查询请求,根据语言的反射特性从所述数据库中递归解析出所述数据对象,对所述数据对象进行解密;
将解密后的所述数据对象发送给用户。
优选地,所述对所述数据对象进行解密的步骤,包括:
获取所述数据对象的上下文信息;
根据所述上下文信息选取对应的秘钥对所述数据对象进行解密。
进一步地,所述对符合所述加密算法的所述数据对象进行加密的步骤之前,还包括:
采用AOP集中代理的方式,对所述数据对象对应的业务逻辑层统一载入加密逻辑,以按照所述加密逻辑对所述数据对象进行加密。
进一步地,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
获取加密后的所述数据对象的明文和密文,将所述明文和密文保存至数据库中;
当检测到预设存量的数据对象完成加密时,响应于用户的数据查询请求,根据所述数据库的密文对所述数据对象进行解密。
进一步地,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
获取加密后的密文及秘钥版本信息;
将所述秘钥版本信息添加至加密后的数据对象中。
进一步地,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
通过随机算法生成随机秘钥;
利用所述随机秘钥和代码常量组成加密秘钥;
对所述加密秘钥进行初始化操作,将初始化操作后的所述加密秘钥发送给所述用户所在终端。
本申请还提供一种数据存储装置,其包括:
获取模块,用于获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
确定模块,用于根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
设置模块,用于采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
解析模块,用于通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
存储模块,用于将加密后的所述数据对象存储至数据库中。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请所提供的一种数据存储方法、装置、设备及存储介质,通过获取数据,通过反射机制获取数据中包含的多个字段的字段类型;根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个数据对象的对象类型;并通过枚举每一个对象类型的方式获取对象类型对应的解析路径,利用相应的解析路径对对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对符合加密算法的数据对象进行加密;将加密后的数据对象存储至数据库中,从而通过枚举对象类型采用对应的解析路径对对象类型的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对适用加密算法的数据对象进行加密的方式,减少了业务逻辑层的集成工作量,降低了对业务逻辑层的耦合度要求,提高了数据存储效率。
附图说明
图1为本申请一实施例的数据存储方法的流程示意图;
图2为本申请一实施例的数据存储装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参考图1,本申请提出一种数据存储方法,其中一个实施例中,该数据存储方法包括如下步骤:
S11、获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
S12、根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
S13、采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
S14、通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
S15、将加密后的所述数据对象存储至数据库中。
如上述步骤S11所述,服务端响应于客户端发起的数据存储请求,并接收数据,为适配方法入参和返回值的各种数据类型,通过反射机制获取所述数据中包含的多个字段的字段类型。其中,该反射机制可以是Java语言的反射机制,反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,反射被视为动态语言的关键。在Java编程语言的***中,可以通过Java语言的反射特性,递归解析出数据的结构并进行加密和解密。比如,利用Java开发工具中提供的实现了反射机制的函数和解析得到的多个字段的字段类型的规则。
所述字段类型可以为基本数据类型,比如double、float、int、string等类型,也可以为消息体类型,或者称为复杂数据类型,该复杂数据类型包括数组(Array)类型,以及集合(Object)类型。
如上述步骤S12所述,所述处理规则为将字段设置至对应的数据对象中所采用的方法,在本实施例中,可以预先针对不同类型的字段设置不同的处理方法,比如针对基本数据类型的字段,可以采用第一规则进行处理,针对消息体类型的字段,可以采用第二规则进行处理,第一规则与第二规则为两种不同的处理规则,从而根据相应的处理规则将每个字段设置到数据对象中。
其中,该处理规则可包括按优先级高低顺序排列的多条处理规则,每条处理规则包括规则字段和后续处理动作。其中,处理规则的优先级表示当对字段进行处理时,选择用于匹配的处理规则的先后顺序,即按照优先级高低顺序依次选用处理规则对每个字段进行适配,具体的适配过程是通常是利用规则字段来完成,若成功适配,则执行当前处理规则的后续处理动作,若失败,则选择当前处理规则的下一条处理规则继续对字段进行适配,直至获取到与该字段匹配的处理规则。
如上述步骤S13所述,在确定数据中每一个字段所对应的处理规则后,即可以采用该确定的处理规则,并引用定义的Page类对所有的字段进行处理,以将各个字段设置到对应的数据对象中。其中,定义的Page类为某方法的入参,需要做加密,Page类是一个复合结构,它的字段包含:需要直接加解密的字段、容器字段和复合对象。其中,容器中包含的也是一个复合类SuperClass和SubClass,其中也包含需要加解密的字段。
其中,该数据对象为具有相同字段类型的数据的集合,即为数据的子集,可包括:结算账户、证件号码、持卡人的姓名、预留手机号码、身份证号码中的一个或多个。例如,可将字段类型为double类型的数据设置为一数据对象。
如上述步骤S14、S15所述,本步骤根据枚举对象类型的方式,对不同对象类型的数据对象采用不同的加密算法,再逐层递归至任一数据对象。需要说明的是,本实施例的计算机设备的每一业务逻辑层都配置了不同的加密算法,当多个数据对象流转至计算机设备的某一业务逻辑层时,先判断该数据对象是否适用内置在该业务逻辑层的加密算法,若是,则对数据对象进行加密;否则,将不符合该业务逻辑层的加密算法的数据对象流转至下一逻辑层,以切换至另一预设的加密算法对数据对象进行加密。例如,当某一业务逻辑层的加密算法为Hash算法时,由于Hash算法是一种单向算法,用户可以通过Hash算法对数据对象生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得数据对象,因此对于需要通过Hash值还原的数据对象则不符合该Hash算法。
如上述步骤S15所述,对数据对象进行加密后,最后将加密后的数据对象数据存储至数据库中,以避免加密过程集中在同一业务逻辑层,减少了同一业务逻辑层的集成工作量,降低了对业务逻辑层的耦合度要求,提高了数据存储效率;同时提高了被破解的难度,进而提高数据的安全性。
本申请所提供的一种数据存储方法,通过获取数据,通过反射机制获取数据中包含的多个字段的字段类型;根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个数据对象的对象类型;并通过枚举每一个对象类型的方式获取对象类型对应的解析路径,利用相应的解析路径对对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对符合加密算法的数据对象进行加密;将加密后的数据对象存储至数据库中,从而通过枚举对象类型采用对应的解析路径对对象类型的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对适用加密算法的数据对象进行加密的方式,减少了业务逻辑层的集成工作量,降低了对业务逻辑层的耦合度要求,提高了数据存储效率。
在一实施例中,在步骤S15之后,即所述将加密后的所述数据对象存储至数据库中的步骤之后,还可包括:
S16、响应于用户的数据查询请求,根据语言的反射特性从所述数据库中递归解析出所述数据对象,对所述数据对象进行解密;
S17、将解密后的所述数据对象发送给用户。
在本实施例中,在用户需要查询数据时,可以通过Java语言的反射特性,递归解析出数据对象,实现对数据对象地快速解密。其中,Java语言的反射特性是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性。
在一实施例中,在步骤S16中,所述对所述数据进行解密的步骤,可具体包括:
S161、获取所述数据对象的上下文信息;
S162、根据所述上下文信息选取对应的秘钥对所述数据对象进行解密。
在本实施例中,当数据对象为文本信息时,可获取数据对象的上下文信息,可以根据上下文信息使用不同的秘钥对数据对象进行加解密,以根据不同的数据对象采用不同的加密解密方法,提高数据被破解的难度。
此外,还可构建加解密表,并在加解密表中增加hash加密字段,对于大数据平台做数据分析需要用到加解密字段做关联分析,由于各个***加密字段秘钥是独立的,加密后数据库存储值不一致,数据分析关联不起来,通过设计独立的hash加密字段,对于这个字段大数据平台统一申请的加密秘钥,可保证加密后的值唯一,并将秘钥交由大数据平***立管理。
在一实施例中,在步骤S14之前,即所述对符合所述加密算法的所述数据对象进行加密的步骤之前,还可包括:
采用AOP集中代理的方式,对所述数据对象对应的业务逻辑层统一载入加密逻辑,以按照所述加密逻辑对所述数据对象进行加密。
在本实施例中,采用(Aspect Oriented Programming,AOP)面向切面编程注释方式对需要加密的数据对象对应的业务逻辑层统一载入加解密逻辑,从而使各个业务***采用统一的方式进行数据存储,方便管理。
其中,AOP是为了解决面向对象编程方式无法满足的需求,即提供一个横切的方法,不破原始代码的封装性,对已有的代码进行扩展,从而实现更为丰富的功能。例如,将和加密算法无关的功能代码给抽取出来,然后在这些功能运行时将其动态的横向***进去,减少耦合度和代码冗余,并实现了在不修改被代理对象的基础下,进行了一些功能的附加与增强。
在一实施例中,在步骤S14之后,即所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还可包括:
获取加密后的所述数据对象的明文和密文,将所述明文和密文保存至数据库中;
当检测到预设存量的数据对象完成加密时,响应于用户的数据查询请求,根据所述数据库的密文对所述数据对象进行解密。
在本实施例中,通常为了保护个人隐私或者防止重要信息不被泄露,通常将需要保密的明文进行加密后保存在数据库中,这样即使信息泄密后,攻击者在不知道秘钥的情况下也很难破解拿到明文。
明文是指没有加密的文字、数字或者字符串等,例如,明文为一串字符串“abcd”,其中,明文的字符包括“a”、“b”、“c”、“d”。
此外,为确保数据对象成功存储,解密时正常使用,框架将整个过程明晰的分层了几个阶段并为每个阶段设置功能开关,确保每个阶段可以单独验证,如写密文开关、使用密文开关和不写明文开关。
写密文开关,数据库中同时保存明文和密文;
使用密文开关,打开此开关要确保开关一打开并且完成历史存量数据对象都已经写到新增加的密文字段并能够正常的解密;
不写明文开关,使用密文开关打开,业务功能验证正常后,不在需要写明文字段,打开此开关。
在一实施例中,在步骤S14之后,即所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还可包括:
获取加密后的密文及秘钥版本信息;
将所述秘钥版本信息添加至加密后的数据对象中。
在本实施例中,在数据对象加密过程中,当数据库中的秘钥被泄露后,会造成数据的不安全。此时,在监测到秘钥被泄露后,可触发更新秘钥的操作,该操作会将新秘钥版本信息发送给服务端,服务端获取秘钥版本信息之后,将秘钥版本信息添加至加密后的密文中,进行秘钥更新的处理,实现方便、高效的秘钥更新。
另外,新旧秘钥版本的更新可在预设时间段完成,当达到预设的更新时间后,服务端会获取新秘钥版本信息。
在一实施例中,在步骤S14之后,即所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还可包括:
通过随机算法生成随机秘钥;
利用所述随机秘钥和代码常量组成加密秘钥;
对所述加密秘钥进行初始化操作,将初始化操作后的所述加密秘钥发送给所述用户所在终端。
在本实施方式中,该加密秘钥由代码常量与随机生成的随机秘钥组成,其中,该代码常量由程序员开发时写入的代码确定,开发人员可灵活实施且可以定制自己的算法,秘钥兼容升级方案和实用方案,例如:根据开发的代码,直接将代码的部分内容作为该代码常量,该随机秘钥通过随机算法生成。
多用户场景下,为适应不同的用户主题加解密的秘钥不同,各个主体数据隔离,框架支持配置多个用户的加密秘钥,将初始化操作后的所述加密秘钥发送给用户所在终端。
例如,假设大数据平台上有两个租户,他们的数据是隔离的,但是可能部署在同一台服务端上,两个租户要分别配置不同的加密秘钥。
为支持安全秘钥过期替换策略,在加密后的密文中增加秘钥版本信息,方便秘钥更新,例如:手机号13432323345,加密字符串为:zzdN1TzfHxkcR4hnnFCHvozp/R5Zovmw5inuC/o0oZY=,那么在字符串前端增加秘钥和算法版本信息,比如:1AzzdN1TzfHxkcR4hnnFCHvozp/R5Zovmw5inuC/o0oZY=,1为版本号,A为加密算法,加解密组件在解密时,先解析1A,然后使用对应的算法来解密,如果更新秘钥和算法,那么加密后的字符串保存数据库就是:2DzzXWgLfwsDqyF90hY73g3U9qgmmX3FYgQKoO31K8ksI=,数据库中有了版本和算法,即时更新了这样不影响之前的加密数据的解密。
参照图2,本申请实施例中还提供一种数据存储装置,包括:
获取模块11,用于获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
确定模块12,用于根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
设置模块13,用于采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
解析模块14,用于通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对比的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
存储模块15,用于将加密后的所述数据对象存储至数据库中。
服务端响应于客户端发起的数据存储请求,并接收数据,为适配方法入参和返回值的各种数据类型,通过反射机制获取所述数据中包含的多个字段的字段类型。其中,该反射机制可以是Java语言的反射机制,反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,反射被视为动态语言的关键。在Java编程语言的***中,可以通过Java语言的反射特性,递归解析出数据的结构并进行加密和解密。比如,利用Java开发工具中提供的实现了反射机制的函数和解析得到的多个字段的字段类型的规则。
所述字段类型可以为基本数据类型,比如double、float、int、string等类型,也可以为消息体类型,或者称为复杂数据类型,该复杂数据类型包括数组(Array)类型,以及集合(Object)类型。
所述处理规则为将字段设置至对应的数据对象中所采用的方法,在本实施例中,可以预先针对不同类型的字段设置不同的处理方法,比如针对基本数据类型的字段,可以采用第一规则进行处理,针对消息体类型的字段,可以采用第二规则进行处理,第一规则与第二规则为两种不同的处理规则,从而根据相应的处理规则将每个字段设置到数据对象中。
其中,该处理规则可包括按优先级高低顺序排列的多条处理规则,每条处理规则包括规则字段和后续处理动作。其中,处理规则的优先级表示当对字段进行处理时,选择用于匹配的处理规则的先后顺序,即按照优先级高低顺序依次选用处理规则对每个字段进行适配,具体的适配过程是通常是利用规则字段来完成,若成功适配,则执行当前处理规则的后续处理动作,若失败,则选择当前处理规则的下一条处理规则继续对字段进行适配,直至获取到与该字段匹配的处理规则。
在确定数据中每一个字段所对应的处理规则后,即可以采用该确定的处理规则,并引用定义的Page类对所有的字段进行处理,以将各个字段设置到对应的数据对象中。其中,定义的Page类为某方法的入参,需要做加密,Page类是一个复合结构,它的字段包含:需要直接加解密的字段、容器字段和复合对象。其中,容器中包含的也是一个复合类SuperClass和SubClass,其中也包含需要加解密的字段。
其中,该数据对象为具有相同字段类型的数据的集合,即为数据的子集,可包括:结算账户、证件号码、持卡人的姓名、预留手机号码、身份证号码中的一个或多个。例如,可将字段类型为double类型的数据设置为一数据对象。
进一步地,还可根据枚举对象类型的方式,对不同对象类型的数据对象采用不同的加密算法,再逐层递归至任一数据对象。需要说明的是,本实施例的计算机设备的每一业务逻辑层都配置了不同的加密算法,当多个数据对象流转至计算机设备的某一业务逻辑层时,先判断该数据对象是否适用内置在该业务逻辑层的加密算法,若是,则对数据对象进行加密;否则,将不符合该业务逻辑层的加密算法的数据对象流转至下一逻辑层,以切换至另一预设的加密算法对数据对象进行加密。例如,当某一业务逻辑层的加密算法为Hash算法时,由于Hash算法是一种单向算法,用户可以通过Hash算法对数据对象生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得数据对象,因此对于需要通过Hash值还原的数据对象则不符合该Hash算法。
如上述步骤S15所述,对数据对象进行加密后,最后将加密后的数据对象存储至数据库中,以避免加密过程集中在同一业务逻辑层,减少了同一业务逻辑层的集成工作量,降低了对业务逻辑层的耦合度要求,提高了数据存储效率;同时提高了被破解的难度,进而提高数据的安全性。
如上所述,可以理解地,本申请中提出的所述数据存储装置的各组成部分可以实现如上所述数据存储方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,其内部结构可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作***、计算机程序和数据库。该内存器为存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储秘钥、明文和密文等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据存储方法。
上述处理器执行上述的数据存储方法,包括:
获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
将加密后的所述数据对象存储至数据库中。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据存储方法,包括步骤:
获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
将加密后的所述数据对象存储至数据库中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本申请的最大有益效果在于:
本申请所提供的一种数据存储方法、装置、设备及存储介质,通过获取数据,通过反射机制获取数据中包含的多个字段的字段类型;根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个数据对象的对象类型;并通过枚举每一个对象类型的方式获取对象类型对应的解析路径,利用相应的解析路径对对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对符合加密算法的数据对象进行加密;将加密后的数据对象存储至数据库中,从而通过枚举对象类型采用对应的解析路径对对象类型的数据对象进行解析,并利用预设的加密算法逐层递归解析后的数据对象,对适用加密算法的数据对象进行加密的方式,减少了业务逻辑层的集成工作量,降低了对业务逻辑层的耦合度要求,提高了数据存储效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据存储方法,其特征在于,包括以下步骤:
获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
将加密后的所述数据对象存储至数据库中。
2.根据权利要求1所述的方法,其特征在于,所述将加密后的所述数据对象存储至数据库中的步骤之后,还包括:
响应于用户的数据查询请求,根据语言的反射特性从所述数据库中递归解析出所述数据对象,对所述数据对象进行解密;
将解密后的所述数据对象发送给用户。
3.根据权利要求2所述的方法,其特征在于,所述对所述数据对象进行解密的步骤,包括:
获取所述数据对象的上下文信息;
根据所述上下文信息选取对应的秘钥对所述数据对象进行解密。
4.根据权利要求1所述的方法,其特征在于,所述对符合所述加密算法的所述数据对象进行加密的步骤之前,还包括:
采用AOP集中代理的方式,对所述数据对象对应的业务逻辑层统一载入加密逻辑,以按照所述加密逻辑对所述数据对象进行加密。
5.根据权利要求1所述的方法,其特征在于,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
获取加密后的所述数据对象的明文和密文,将所述明文和密文保存至数据库中;
当检测到预设存量的数据对象完成加密时,响应于用户的数据查询请求,根据所述数据库的密文对所述数据对象进行解密。
6.根据权利要求1所述的方法,其特征在于,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
获取加密后的密文及秘钥版本信息;
将所述秘钥版本信息添加至加密后的数据对象中。
7.根据权利要求1所述的方法,其特征在于,所述对符合所述加密算法的所述数据对象进行加密的步骤之后,还包括:
通过随机算法生成随机秘钥;
利用所述随机秘钥和代码常量组成加密秘钥;
对所述加密秘钥进行初始化操作,将初始化操作后的所述加密秘钥发送给用户所在终端。
8.一种数据存储装置,其特征在于,包括:
获取模块,用于获取数据,通过反射机制获取所述数据中包含的多个字段的字段类型;
确定模块,用于根据获取到的每个字段的字段类型确定将每个字段设置到数据对象中的处理规则;其中,所述数据对象为具有相同字段类型的数据的集合;
设置模块,用于采用确定的处理规则将每个字段设置到对应的数据对象中,并确定每一个所述数据对象的对象类型;
解析模块,用于通过枚举每一个所述对象类型的方式获取所述对象类型对应的解析路径,利用相应的解析路径对所述对象类型对应的数据对象进行解析,并利用预设的加密算法逐层递归解析后的所述数据对象,对符合所述加密算法的所述数据对象进行加密;
存储模块,用于将加密后的所述数据对象存储至数据库中。
9.一种计算机设备,其特征在于,包括:
处理器;
存储器;
计算机程序,其中所述计算机程序被存储在所述存储器中并被配置为由所述处理器执行,所述计算机程序配置用于执行根据权利要求1至7任一项所述的数据存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720134.0A CN113420030A (zh) | 2021-06-28 | 2021-06-28 | 数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720134.0A CN113420030A (zh) | 2021-06-28 | 2021-06-28 | 数据存储方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113420030A true CN113420030A (zh) | 2021-09-21 |
Family
ID=77716864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110720134.0A Pending CN113420030A (zh) | 2021-06-28 | 2021-06-28 | 数据存储方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420030A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115085903A (zh) * | 2022-06-16 | 2022-09-20 | 平安普惠企业管理有限公司 | 基于加密算法的数据加密解密方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679500A (zh) * | 2013-12-03 | 2015-06-03 | 南京中兴力维软件有限公司 | 实体类自动生成实现方法及装置 |
CN109858263A (zh) * | 2019-01-21 | 2019-06-07 | 北京城市网邻信息技术有限公司 | 数据存储检索方法、装置、电子设备及存储介质 |
CN110737436A (zh) * | 2019-09-05 | 2020-01-31 | 深圳平安通信科技有限公司 | 转码方法、装置及计算机可读存储介质 |
CN111310221A (zh) * | 2020-03-26 | 2020-06-19 | 北京百度网讯科技有限公司 | 持久层数据的加解密方法、装置、设备及存储介质 |
CN111984986A (zh) * | 2020-08-28 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 数据库字段加密方法、电子设备及计算机可读存储介质 |
CN112699398A (zh) * | 2021-01-28 | 2021-04-23 | 厦门立林科技有限公司 | 一种安卓应用关键数据的保护装置、方法、设备及可存储介质 |
-
2021
- 2021-06-28 CN CN202110720134.0A patent/CN113420030A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679500A (zh) * | 2013-12-03 | 2015-06-03 | 南京中兴力维软件有限公司 | 实体类自动生成实现方法及装置 |
CN109858263A (zh) * | 2019-01-21 | 2019-06-07 | 北京城市网邻信息技术有限公司 | 数据存储检索方法、装置、电子设备及存储介质 |
CN110737436A (zh) * | 2019-09-05 | 2020-01-31 | 深圳平安通信科技有限公司 | 转码方法、装置及计算机可读存储介质 |
CN111310221A (zh) * | 2020-03-26 | 2020-06-19 | 北京百度网讯科技有限公司 | 持久层数据的加解密方法、装置、设备及存储介质 |
CN111984986A (zh) * | 2020-08-28 | 2020-11-24 | 深圳壹账通智能科技有限公司 | 数据库字段加密方法、电子设备及计算机可读存储介质 |
CN112699398A (zh) * | 2021-01-28 | 2021-04-23 | 厦门立林科技有限公司 | 一种安卓应用关键数据的保护装置、方法、设备及可存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115085903A (zh) * | 2022-06-16 | 2022-09-20 | 平安普惠企业管理有限公司 | 基于加密算法的数据加密解密方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829727B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN111552931A (zh) | java代码的加壳方法与*** | |
CN110224855B (zh) | 微服务实例的注册方法、装置、计算机设备及存储介质 | |
CN111475524B (zh) | 基于***的数据处理方法、装置和计算机设备 | |
WO2010150008A2 (en) | Method and system for provision of cryptographic services | |
CN110727949B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN108418785B (zh) | 密码调用方法、服务器及存储介质 | |
EP3391209B1 (en) | Method for managing objects in a secure element | |
CN112800393B (zh) | 授权认证、软件开发工具包生成方法、装置及电子设备 | |
CN113656765B (zh) | java程序安全处理方法、装置、计算机设备及存储介质 | |
US10248795B2 (en) | Implementing method for JavaCard application function expansion | |
CN112100142A (zh) | 基于区块链的数字资产处理方法及*** | |
CN111177701A (zh) | 基于可信执行环境和安全芯片的密码功能服务实现方法和设备 | |
CN111917711B (zh) | 数据访问方法、装置、计算机设备和存储介质 | |
US20050154899A1 (en) | Mobile software authentication and validation | |
CN112527835A (zh) | 基于缓存的认证请求处理方法、装置及相关设备 | |
CN112016122A (zh) | 网页数据处理方法、装置、计算机设备及存储介质 | |
CN114218538A (zh) | 权限控制方法、装置、计算机设备、存储介质 | |
CN113420030A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN113779513A (zh) | Zip文件的标识***方法、装置、计算机设备和存储介质 | |
CN110602051B (zh) | 基于共识协议的信息处理方法及相关装置 | |
KR101979320B1 (ko) | 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법 | |
CN117093964A (zh) | 一种源代码的加密方法、装置、存储介质及电子设备 | |
CN108848165B (zh) | 业务请求处理方法、装置、计算机设备和存储介质 | |
WO2023279698A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |
|
RJ01 | Rejection of invention patent application after publication |