CN111310221A - 持久层数据的加解密方法、装置、设备及存储介质 - Google Patents
持久层数据的加解密方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111310221A CN111310221A CN202010222555.6A CN202010222555A CN111310221A CN 111310221 A CN111310221 A CN 111310221A CN 202010222555 A CN202010222555 A CN 202010222555A CN 111310221 A CN111310221 A CN 111310221A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- decrypted
- field
- class
- 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
Images
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了持久层数据的加解密方法、装置、设备及存储介质,涉及云计算技术。具体实现方案为:拦截获取持久层内的待处理数据;若根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括目标类中需加密或解密的目标字段,则根据目标字段对待处理数据进行加密或解密,获得目标数据;其中,编译文件用于按照第一预设格式存储需加密或解密的类以及需加密或解密的类中需加密或解密的字段。返回目标数据。本申请实施例实现了降低对原有程序的改造量,提升了数据处理效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种云计算技术。
背景技术
持久层,也称为数据访问层(Data Access Layer,DAL),是指将数据从易失性存储介质持久化存储至非易失性存储介质的数据层,可以实现数据库的访问。在人们日益关注信息安全的今天,持久层数据的加密和解密尤为重要。持久层数据的加密是指在将数据存储到数据库的时候把数据转换成密文存储,相对应的,持久层数据的解密是指在将数据从数据库中读取出来的时候将密文转换成明文。
目前,持久层数据的加密和解密是在原有的数据库插入和读取操作前直接增加加密和解密方法。
由于直接在原程序上增加加密和解密的方法,需要修改原有程序中所有的数据库插入和读取操作,导致程序改造量很大,数据处理效率很低。
发明内容
提供了一种持久层数据的加解密方法、装置、设备及存储介质,降低了对原有程序的改造量,提升了数据处理效率。
根据第一方面,提供了一种持久层数据的加解密方法,包括:
拦截获取持久层内的待处理数据;
若根据编译文件确定所述待处理数据包括需加密或解密的目标类且所述待处理数据包括所述目标类中需加密或解密的目标字段,则根据所述目标字段对所述待处理数据进行加密或解密,获得目标数据;其中,所述编译文件用于按照第一预设格式存储需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
返回所述目标数据。
可以看出,与现有技术不同的是,本申请实施例中,通过拦截获取持久层内的待处理数据,如果根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括该目标类中需加密或解密的目标字段,则对需加密或解密的目标字段进行加密或解密,获得目标数据。可见,本申请实施例不需要对原有程序中数据库插入和读取操作的相关代码进行修改,降低了对原有程序的改造量,提升了数据处理效率。
根据第二方面,提供了一种持久层数据的加解密装置,包括:
获取模块,用于拦截获取持久层内的待处理数据;
处理模块,用于在根据编译文件确定所述待处理数据包括需加密或解密的目标类且所述待处理数据包括所述目标类中需加密或解密的目标字段时,根据所述目标字段对所述待处理数据进行加密或解密,获得目标数据;其中,所述编译文件用于按照第一预设格式存储需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
返回模块,用于返回所述目标数据。
根据第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的方法。
根据第四方面,提供了存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述第一方面所述的方法。
上述申请中的一个实施例具有如下优点或有益效果:通过拦截获取持久层内的待处理数据,如果根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括该目标类中需加密或解密的目标字段,则对需加密或解密的目标字段进行加密或解密,获得目标数据。可见,本申请实施例不需要对原有程序中数据库插入和读取操作的相关代码进行修改,降低了对原有程序的改造量,提升了数据处理效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例适用的应用场景图;
图2为本申请实施例提供的持久层数据的加解密方法的原理框图;
图3为本申请实施例提供的持久层数据的加解密方法的一种流程图;
图4为本申请实施例提供的持久层数据的加解密装置的一种结构示意图;
图5为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在数据库访问的过程中,需要进行持久层数据的加密和解密。示例性的,图1为本申请实施例适用的应用场景图。如图1所示,在进行数据库插入操作时,电子设备100需要进行持久层数据的加密,将待插入数据转换成密文,并存储至数据库中。相对应的,在进行数据库读取操作时,电子设备100需要进行持久层数据的解密,将从数据库中读取的数据转换成明文信息。可选的,电子设备100上可以部署有数据库。需要说明,图1仅是示例,并不对本申请的应用场景形成限定。需要说明,本申请对电子设备100的类型不做限定,例如,可以为电脑、服务器等。
在现有技术中,持久层数据的加密和解密是在原有的数据库插入和读取操作前直接增加加密和解密方法,需要修改原有程序中所有的数据库插入和读取操作,程序改造量很大,数据处理效率很低。
基于该技术问题,本申请提供一种持久层数据的加解密方法。示例性的,图2为本申请实施例提供的持久层数据的加解密方法的原理框图。请参考图2,在进行数据库插入和数据库读取操作的过程中,拦截获取持久层内的待处理数据,若根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括该目标类中需加密或解密的目标字段,则对需加密或解密的目标字段的值进行加密或解密,获得目标数据,并返回数据库插入或数据库读取的操作流程。本申请提供的持久层数据的加解密方法,不需要对原有程序中数据库插入和读取操作的相关代码进行修改,降低了对原有程序的改造量,提升了数据处理效率。而且,对目标字段进行加密和解密的方法适用于不同的类,提升了持久层数据加解密的通用性和可扩展性。
下面结合附图进行描述。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图3为本申请实施例提供的持久层数据的加解密方法的一种流程图。本实施例提供的持久层数据的加解密方法,执行主体可以为持久层数据的加解密装置或电子设备。如图3所示,本实施例提供的持久层数据的加解密方法,可以包括:
S301、拦截获取持久层内的待处理数据。
其中,持久层内的待处理数据为待加密或待解密的数据。
在本实施例中,通过拦截获取持久层内的待处理数据,后续可以针对待处理数据进行加密或解密,避免了现有技术中每次进行数据库插入或读取操作时都需要在原有程序中增加数据库插入和读取操作的相关代码,避免了对原有程序的大幅修改,降低了程序的改造量。
S302、若根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括目标类中需加密或解密的目标字段,则根据目标字段对待处理数据进行加密或解密,获得目标数据。
其中,编译文件用于按照第一预设格式存储需加密或解密的类以及需加密或解密的类中需加密或解密的字段。本实施例对编译文件的类型和名称不做限定。为了便于说明,将编译文件中存储需加密或解密的类以及需加密或解密的字段的存储格式称为第一预设格式。编译文件的类型不同,第一预设格式可以不同。
具体的,类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。对象是类的实例,类是对象的模板。对于类,可以包括多个字段。举例说明。假设,类的名称为BigPerson,该类中可以包括3个字段,分别为number、age和name。类中有些字段的值需要加密,有些字段的值不需要加密。编译文件中就存储了需加密或解密的类以及需加密或解密的类中需加密或解密的字段。根据编译文件可以确定待处理数据是否包括需加密或解密的类以及需加密或解密的字段。如果待处理数据中包括需加密或解密的类且包括该类中需加密或解密的字段,则可以针对该字段进行加密或解密。在本实施例中,为了便于说明,将待处理数据中包括的需加密或解密的类称为目标类,将待处理数据中包括的目标类中需加密或解密的字段称为目标字段。
在本实施例中,对待处理数据中目标字段的值进行加密或解密,可以采用通用的加密或解密方法。因此,不需要针对不同的类编写不同的加解密方法,而是针对需要加解密的字段执行通用的加解密方法,进一步降低了程序的修改量,提升了持久层数据加解密的通用性和可扩展性。
下面,以编译文件为map文件(或称为MAP文件)为例,对第一预设格式进行示例性说明。第一预设格式如下:
其中,“包类名”用于唯一区分不同的类。“要加解密的字段”用于在所属类中唯一区分不同的字段。字段的存储格式可以是对象简谱(JavaScript Object Notation,JSON或JS或json)格式,也可以不是json格式。
S303、返回目标数据。
可见,本实施例提供的持久层数据的加解密方法,通过拦截获取持久层内的待处理数据,如果根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括该目标类中需加密或解密的目标字段,则对需加密或解密的目标字段进行加密或解密,获得目标数据,并返回该目标数据。本实施例提供的持久层数据的加解密方法,不需要对原有程序中数据库插入和读取操作的相关代码进行修改,降低了原有程序的改造量,提升了数据处理效率。而且,对目标字段进行加密和解密的方法适用于不同的类,提升了持久层数据加解密的通用性和可扩展性。
在本申请的又一个实施例中,在图3所示实施例的基础上,本实施例对上述S301中拦截获取持久层内的待处理数据、S302中根据目标字段对待处理数据进行加密或解密,以及S303中返回目标数据的可实现方式进行说明。
可选的,在一种实现方式中,S301中拦截获取持久层内的待处理数据,可以包括:
获取数据库访问请求。其中,数据库访问请求用于向数据库中插入数据或者从数据库中读取数据。
利用Java注解和反射机制对数据库访问请求进行拦截,获取持久层内的待处理数据。
具体的,Java注解和Java反射是Java中的两个特性。Java程序运行的过程中,包含两个阶段,分别为编译期和运行期。注解是插入代码中的一种注释或者说是一种元数据(meta data),注解不是程序本身,是对程序作出的解释。注解信息可以在编译期使用预编译工具(pre-compiler tools)进行处理,也可以在运行期使用Java反射机制进行处理。在定义了一个注解之后,可以将其应用到代码中,注解的定义可以说明这个注解该如何使用。Java反射机制是指在运行期中,对于任意一个类,都能够知道这个类的属性和方法,对于任意一个对象,都能够调用它的方法和属性,这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。通过反射,可以获取一个方法上声明的注解的全部内容。
在本实施方式中,获取数据库访问请求后,可以通过注解将原有的持久层(或数据库)插入和读取操作进行拦截,获取持久层内的待处理数据,以便后续对待处理数据进行加密或解密。通过反射可以将加密或解密流程进行统配。
可选的,在另一种实现方式中,S301中拦截获取持久层内的待处理数据,可以包括:
获取数据库访问请求,数据库访问请求用于向数据库中插入数据或者从数据库中读取数据。
利用Java拦截器对数据库访问请求进行拦截,获取持久层内的待处理数据。
具体的,Java里的拦截器可以用于在某个方法或者字段被访问之前,进行拦截,然后在之前或者之后加入某些操作。在本实施方式中,利用Java拦截器可以对数据库访问请求进行拦截,获取持久层内的待处理数据。
可选的,在一种实现方式中,S302中根据目标字段对待处理数据进行加密或解密,可以包括:
判断待处理数据中目标字段的存储格式是否为json格式。
若待处理数据中目标字段的存储格式不是json格式,则对目标字段的值进行加密或解密。
若待处理数据中目标字段的存储格式是json格式,则将目标字段的存储格式由json格式转换为实体类格式,对实体类格式的目标字段的值进行加密或解密。
具体的,json格式是一种轻量级的数据交换格式,是数据存储中的常用格式。可能存在如下场景:一些字段存储的是一个对象的json形式,而需要加密的字段是这个json串中的某个字段。在本实施方式中,需要判断待处理数据中目标字段的存储格式是否为json格式。如果待处理数据中目标字段的存储格式不是json格式,则可以直接对目标字段的值进行加密或解密。如果待处理数据中目标字段的存储格式是json格式,则必须将目标字段的存储格式转换为实体类格式,获取目标字段的值,从而对目标字段的值进行加密或解密。
其中,本实施例对实体类格式的实现方式不做限定,不同的类对应的实体类格式可以相同,也可以不同。
可选的,在一种实现方式中,S303中返回目标数据,可以包括:
若目标数据的存储格式不是json格式,则将目标数据的存储格式转换为json格式。
返回json格式的目标数据。
具体的,在本实施方式中,返回的目标数据需要为json格式。因此,在返回目标数据前,确定目标数据的存储格式是否为json格式。如果目标数据的存储格式是json格式,则直接返回目标数据。如果目标数据的存储格式不是json格式,则将目标数据的存储格式转换为json格式后,再返回目标数据。
在本申请的又一个实施例中,在上述实施例的基础上,参见图2,本实施例提供的持久层数据的加解密方法,还可以包括:
读取配置文件,配置文件用于按照第二预设格式存储需加密或解密的类以及需加密或解密的类中需加密或解密的字段。
将配置文件转换为编译文件。
其中,配置文件可以是用户可编辑的文件,通过配置文件可以设置需加密或解密的类以及需加密或解密的类中需加密或解密的字段,提升了持久层数据加解密的灵活性和可配置性。
为了便于说明,将配置文件中存储需加密或解密的类以及需加密或解密的字段的存储格式称为第二预设格式。本实施例对配置文件的类型第二预设格式的实现方式不做限定。
可选的,第二预设格式可以包括:
配置文件包括至少一个信息段,每个信息段用于存储一个需加密或解密的类以及该类中需加密或解密的至少一个字段,不同的信息段之间通过第一分隔符进行分隔。
其中,本实施例对第一分隔符不做限定。例如,第一分隔符可以包括但不限于下列中的任意一种:换行符、斜线、分号和句号。
其中,本实施例对一个类中需加密或解密的字段的数量不做限定。
可选的,每个信息段可以包括如下信息:需加密或解密的类的类名、该类中需加密或解密的字段的名称、用于指示字段是否为json格式的指示信息、字段为json格式时该字段对应的实体类的类名、字段为json格式时该字段中需加密或解密的子字段的名称。其中,各项信息之间通过第二分隔符进行分隔,第二分隔符与第一分隔符不同。
具体的,需加密或解密的类的类名用于位于区分不同的类。该类中需加密或解密的字段的名称用于在该类中唯一区分不同的字段。用于指示字段是否为对象简谱json格式的指示信息可以有多种实现方式,本实施例不具体限定。例如,指示信息的取值可以为0或1,指示信息为0时用于指示字段为json格式,指示信息为1时用于指示字段不是json格式。又例如,指示信息的取值可以为ture或false。字段为json格式时该字段中需加密或解密的子字段的名称用于在该json格式的字段中唯一区分不同的子字段。
需要说明的是,本实施例对第二分隔符不做限定。可选的,第二分隔符可以包括但不限于下列中的任意一项:逗号、分号或空格符。
需要说明的是,本实施例对每个信息段中各项信息的排列顺序不做限定。
下面,通过示例对信息段进行示例性说明。假设,第一分隔符为换行符。配置文件中的每一行用于存储一个需加密或解密的类以及该类中需加密或解密的至少一个字段。每一行为一个信息段。第二分隔符为空格。每一行中各项信息的排列顺序为:
需加密或解密的类的类名需加密或解密的字段的名称字段是否是json格式如果是json格式,所对应的实体类的类名如果是json格式,子字段的名称
第一个具体的示例为:
com.example.demo.aes.dao.BigPerson number,age,name false,false,true,,com.example.demo.aes.dao.Name,,firstname#lastname
在该示例中,每一行各项信息之间通过空格进行分隔。需加密或解密的类的类名为com.example.demo.aes.dao.BigPerson,是完整的包类名。该类中需加密或解密的字段有三个,字段的名称分别为number,age,name。在本示例中,需加密或解密的字段有多个,中间可以用“,”进行分隔,但本实施例对此不做限定,也可以为其他类型的分隔符,需要与第一分隔符和第二分隔符不同。在本示例中,后面的三项信息均与前面要加密的字段对应,也使用“,”进行分隔。具体的,在“false,false,true”中,第一个false用于表示字段number不是json格式,第二个false用于表示字段age不是json格式,第三个true用于表示字段name是json格式。在“,,com.example.demo.aes.dao.Name”中,由于字段number和字段age不是json格式,因此前两项用空字符串代替,保留分隔符“,”,最后一项“com.example.demo.aes.dao.Name”为字段name对应的实体类的类名。相似的,在“,,firstname#lastname”中,前两项用空字符串代替,保留分隔符“,”,最后一项“firstname#lastname”表示字段name中需加密或解密的子字段,子字段的名称分别为firstname和lastname,中间用分隔符“#”进行分隔。
第二个具体的示例为:
com.example.demo.aes.dao.BigPerson number,false age,false name,com.example.demo.aes.dao.Name,firstname#lastname
本示例与上一个示例的区别在于,针对每个字段,“需加密或解密的字段的名称”、“用于指示字段是否为json格式的指示信息”、“字段为json格式时该字段对应的实体类的类名”、“字段为json格式时该字段中需加密或解密的子字段的名称”这4项信息是针对每个字段放在一起描述的。例如,“number,false”表示字段名称为number,且该字段不是json格式。“name,com.example.demo.aes.dao.Name,firstname#lastname”表示字段名称为name、是json格式、对应的实体类的类名为com.example.demo.aes.dao.Name、两个子字段的名称分别为firstname和lastname。
需要说明的是,子字段可以为json格式,也可以不是json格式。如果子字段为json格式,则可以嵌套“用于指示字段是否为json格式的指示信息”、“字段为json格式时该字段对应的实体类的类名”、“字段为json格式时该字段中需加密或解密的子字段的名称”这3项信息。
可选的,将配置文件转换为编译文件,可以包括:
根据第一预设格式和第二预设格式,将配置文件转换为编译文件。
通过上述示例可以看到,第一预设格式和第二预设格式不同,则将配置文件转换为编译文件的方法不同。例如,如果第一分隔符为换行符,则可以根据换行符进行信息段的分割。如果第一分隔符为“/”,则可以根据符号“/”进行信息段的分割。
示例性的,以本申请上面描述的第一预设格式和信息段的第一个示例为例,编译文件中可以包括:
图4为本申请实施例提供的持久层数据的加解密装置的一种结构示意图。如图4所示,本实施例提供的持久层数据的加解密装置,可以包括:
获取模块401,用于拦截获取持久层内的待处理数据;
处理模块402,用于在根据编译文件确定所述待处理数据包括需加密或解密的目标类且所述待处理数据包括所述目标类中需加密或解密的目标字段时,根据所述目标字段对所述待处理数据进行加密或解密,获得目标数据;其中,所述编译文件用于按照第一预设格式存储需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
返回模块403,用于返回所述目标数据。
可选的,所述获取模块401,还用于读取配置文件,所述配置文件用于按照第二预设格式存储所述需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
所述处理模块402,还用于将所述配置文件转换为所述编译文件。
可选的,所述第二预设格式包括:
所述配置文件包括至少一个信息段,每个信息段用于存储一个需加密或解密的类以及该类中需加密或解密的至少一个字段,不同的信息段之间通过第一分隔符进行分隔。
可选的,所述每个信息段包括如下信息:需加密或解密的类的类名、该类中需加密或解密的字段的名称、用于指示字段是否为对象简谱json格式的指示信息、字段为json格式时该字段对应的实体类的类名、字段为json格式时该字段中需加密或解密的子字段的名称;其中,各项信息之间通过第二分隔符进行分隔,所述第二分隔符与所述第一分隔符不同。
可选的,所述第二分隔符为下列中的任意一项:逗号、分号或空格符。
可选的,所述处理模块402具体用于:
根据所述第一预设格式和所述第二预设格式,将所述配置文件转换为所述编译文件。
可选的,所述处理模块402具体用于:
判断所述待处理数据中所述目标字段的存储格式是否为json格式;
若所述待处理数据中所述目标字段的存储格式不是json格式,则对所述目标字段的值进行加密或解密;
若所述待处理数据中所述目标字段的存储格式是json格式,则将所述目标字段的存储格式由json格式转换为实体类格式,对实体类格式的所述目标字段的值进行加密或解密。
可选的,所述返回模块403具体用于:
若所述目标数据的存储格式不是json格式,则将所述目标数据的存储格式转换为json格式;
返回json格式的所述目标数据。
可选的,所述获取模块401具体用于:
获取数据库访问请求,所述数据库访问请求用于向数据库中插入数据或者从所述数据库中读取数据;
利用Java注解和反射机制对所述数据库访问请求进行拦截,获取所述持久层内的待处理数据。
本实施例提供的持久层数据的加解密装置,用于执行本申请方法实施例提供的持久层数据的加解密方法,技术原理和技术效果相似,此处不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
图5为本申请实施例提供的电子设备的一种结构示意图。如图5所示,电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、汽车中的车载系统(或者称之为车载电脑)、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、智能电话、平板电脑、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器801、存储器802,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。图5中以一个处理器801为例。
存储器802即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的持久层数据的加解密方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的持久层数据的加解密方法。
存储器802作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的持久层数据的加解密方法对应的程序指令/模块(例如,附图4所示的获取模块401、处理模块402和返回模块403)。处理器801通过运行存储在存储器802中的非瞬时软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的持久层数据的加解密方法。
存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述电子设备还可以包括:输入装置803和输出装置804。处理器801、存储器802、输入装置803和输出装置804可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置803可接收其它装置或设备(例如麦克风阵列等)发送的数据或信息、还可输入的数字或字符信息,以及产生与上述电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置804可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过拦截获取持久层内的待处理数据,如果根据编译文件确定待处理数据包括需加密或解密的目标类且待处理数据包括该目标类中需加密或解密的目标字段,则对需加密或解密的目标字段进行加密或解密,获得目标数据。可见,本申请实施例不需要对原有程序中数据库插入和读取操作的相关代码进行修改,降低了对原有程序的改造量,提升了数据处理效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (20)
1.一种持久层数据的加解密方法,其特征在于,包括:
拦截获取持久层内的待处理数据;
若根据编译文件确定所述待处理数据包括需加密或解密的目标类且所述待处理数据包括所述目标类中需加密或解密的目标字段,则根据所述目标字段对所述待处理数据进行加密或解密,获得目标数据;其中,所述编译文件用于按照第一预设格式存储需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
返回所述目标数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
读取配置文件,所述配置文件用于按照第二预设格式存储所述需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
将所述配置文件转换为所述编译文件。
3.根据权利要求2所述的方法,其特征在于,所述第二预设格式包括:
所述配置文件包括至少一个信息段,每个信息段用于存储一个需加密或解密的类以及该类中需加密或解密的至少一个字段,不同的信息段之间通过第一分隔符进行分隔。
4.根据权利要求3所述的方法,其特征在于,所述每个信息段包括如下信息:需加密或解密的类的类名、该类中需加密或解密的字段的名称、用于指示字段是否为对象简谱json格式的指示信息、字段为json格式时该字段对应的实体类的类名、字段为json格式时该字段中需加密或解密的子字段的名称;其中,各项信息之间通过第二分隔符进行分隔,所述第二分隔符与所述第一分隔符不同。
5.根据权利要求4所述的方法,其特征在于,所述第二分隔符为下列中的任意一项:逗号、分号或空格符。
6.根据权利要求2所述的方法,其特征在于,所述将所述配置文件转换为所述编译文件,包括:
根据所述第一预设格式和所述第二预设格式,将所述配置文件转换为所述编译文件。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述目标字段对所述待处理数据进行加密或解密,包括:
判断所述待处理数据中所述目标字段的存储格式是否为json格式;
若所述待处理数据中所述目标字段的存储格式不是json格式,则对所述目标字段的值进行加密或解密;
若所述待处理数据中所述目标字段的存储格式是json格式,则将所述目标字段的存储格式由json格式转换为实体类格式,对实体类格式的所述目标字段的值进行加密或解密。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述返回所述目标数据,包括:
若所述目标数据的存储格式不是json格式,则将所述目标数据的存储格式转换为json格式;
返回json格式的所述目标数据。
9.根据权利要求1-6任一项所述的方法,其特征在于,所述拦截获取持久层内的待处理数据,包括:
获取数据库访问请求,所述数据库访问请求用于向数据库中插入数据或者从所述数据库中读取数据;
利用Java注解和反射机制对所述数据库访问请求进行拦截,获取所述持久层内的待处理数据。
10.一种持久层数据的加解密装置,其特征在于,包括:
获取模块,用于拦截获取持久层内的待处理数据;
处理模块,用于在根据编译文件确定所述待处理数据包括需加密或解密的目标类且所述待处理数据包括所述目标类中需加密或解密的目标字段时,根据所述目标字段对所述待处理数据进行加密或解密,获得目标数据;其中,所述编译文件用于按照第一预设格式存储需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
返回模块,用于返回所述目标数据。
11.根据权利要求10所述的装置,其特征在于,
所述获取模块,还用于读取配置文件,所述配置文件用于按照第二预设格式存储所述需加密或解密的类以及所述需加密或解密的类中需加密或解密的字段;
所述处理模块,还用于将所述配置文件转换为所述编译文件。
12.根据权利要求11所述的装置,其特征在于,所述第二预设格式包括:
所述配置文件包括至少一个信息段,每个信息段用于存储一个需加密或解密的类以及该类中需加密或解密的至少一个字段,不同的信息段之间通过第一分隔符进行分隔。
13.根据权利要求12所述的装置,其特征在于,所述每个信息段包括如下信息:需加密或解密的类的类名、该类中需加密或解密的字段的名称、用于指示字段是否为对象简谱json格式的指示信息、字段为json格式时该字段对应的实体类的类名、字段为json格式时该字段中需加密或解密的子字段的名称;其中,各项信息之间通过第二分隔符进行分隔,所述第二分隔符与所述第一分隔符不同。
14.根据权利要求13所述的装置,其特征在于,所述第二分隔符为下列中的任意一项:逗号、分号或空格符。
15.根据权利要求11所述的装置,其特征在于,所述处理模块具体用于:
根据所述第一预设格式和所述第二预设格式,将所述配置文件转换为所述编译文件。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述处理模块具体用于:
判断所述待处理数据中所述目标字段的存储格式是否为json格式;
若所述待处理数据中所述目标字段的存储格式不是json格式,则对所述目标字段的值进行加密或解密;
若所述待处理数据中所述目标字段的存储格式是json格式,则将所述目标字段的存储格式由json格式转换为实体类格式,对实体类格式的所述目标字段的值进行加密或解密。
17.根据权利要求10-15任一项所述的装置,其特征在于,所述返回模块具体用于:
若所述目标数据的存储格式不是json格式,则将所述目标数据的存储格式转换为json格式;
返回json格式的所述目标数据。
18.根据权利要求10-15任一项所述的装置,其特征在于,所述获取模块具体用于:
获取数据库访问请求,所述数据库访问请求用于向数据库中插入数据或者从所述数据库中读取数据;
利用Java注解和反射机制对所述数据库访问请求进行拦截,获取所述持久层内的待处理数据。
19.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222555.6A CN111310221B (zh) | 2020-03-26 | 2020-03-26 | 持久层数据的加解密方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222555.6A CN111310221B (zh) | 2020-03-26 | 2020-03-26 | 持久层数据的加解密方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310221A true CN111310221A (zh) | 2020-06-19 |
CN111310221B CN111310221B (zh) | 2023-01-03 |
Family
ID=71160896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010222555.6A Active CN111310221B (zh) | 2020-03-26 | 2020-03-26 | 持久层数据的加解密方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310221B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311529A (zh) * | 2020-10-27 | 2021-02-02 | 银清科技有限公司 | 一种数据加密方法、解密方法以及数据库的数据处理方法 |
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN111865991B (zh) * | 2020-07-23 | 2021-04-30 | 北京睿知图远科技有限公司 | 一种用于数据加密中心的动态加密及解密方法 |
CN112957742A (zh) * | 2021-04-07 | 2021-06-15 | 北京格瑞拉科技有限公司 | 一种配置文件的处理方法及处理装置 |
CN113254951A (zh) * | 2021-04-23 | 2021-08-13 | 天津车之家数据信息技术有限公司 | 一种数据处理方法及计算设备 |
CN113420030A (zh) * | 2021-06-28 | 2021-09-21 | 未鲲(上海)科技服务有限公司 | 数据存储方法、装置、设备及存储介质 |
CN113821819A (zh) * | 2021-11-22 | 2021-12-21 | 深圳竹云科技有限公司 | 数据读写方法、装置、电子设备及计算机可读存储介质 |
CN115333821A (zh) * | 2022-08-09 | 2022-11-11 | 数字广东网络建设有限公司 | 基于数据库的数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657675A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 核心数据安全传输及存储方法 |
US20180157808A1 (en) * | 2015-08-10 | 2018-06-07 | Line Corporation | System and method for code obfuscation of application |
CN109960942A (zh) * | 2019-03-27 | 2019-07-02 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其系统 |
-
2020
- 2020-03-26 CN CN202010222555.6A patent/CN111310221B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657675A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 核心数据安全传输及存储方法 |
US20180157808A1 (en) * | 2015-08-10 | 2018-06-07 | Line Corporation | System and method for code obfuscation of application |
CN109960942A (zh) * | 2019-03-27 | 2019-07-02 | 厦门商集网络科技有限责任公司 | 基于数据库连接池的数据库数据加解密方法及其系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865991B (zh) * | 2020-07-23 | 2021-04-30 | 北京睿知图远科技有限公司 | 一种用于数据加密中心的动态加密及解密方法 |
CN112311529A (zh) * | 2020-10-27 | 2021-02-02 | 银清科技有限公司 | 一种数据加密方法、解密方法以及数据库的数据处理方法 |
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112468494B (zh) * | 2020-11-26 | 2022-05-17 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112957742A (zh) * | 2021-04-07 | 2021-06-15 | 北京格瑞拉科技有限公司 | 一种配置文件的处理方法及处理装置 |
CN113254951A (zh) * | 2021-04-23 | 2021-08-13 | 天津车之家数据信息技术有限公司 | 一种数据处理方法及计算设备 |
CN113254951B (zh) * | 2021-04-23 | 2022-07-19 | 天津车之家数据信息技术有限公司 | 一种数据处理方法及计算设备 |
CN113420030A (zh) * | 2021-06-28 | 2021-09-21 | 未鲲(上海)科技服务有限公司 | 数据存储方法、装置、设备及存储介质 |
CN113821819A (zh) * | 2021-11-22 | 2021-12-21 | 深圳竹云科技有限公司 | 数据读写方法、装置、电子设备及计算机可读存储介质 |
CN113821819B (zh) * | 2021-11-22 | 2022-03-08 | 深圳竹云科技有限公司 | 数据读写方法、装置、电子设备及计算机可读存储介质 |
CN115333821A (zh) * | 2022-08-09 | 2022-11-11 | 数字广东网络建设有限公司 | 基于数据库的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111310221B (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111310221B (zh) | 持久层数据的加解密方法、装置、设备及存储介质 | |
US7702959B2 (en) | Error management system and method of using the same | |
US9015672B2 (en) | Interface simulator for test rig in data distribution service | |
US11222016B2 (en) | Dynamic combination of processes for sub-queries | |
US9195567B1 (en) | Debugging data format conversion | |
CN110619002A (zh) | 数据处理方法、装置及存储介质 | |
US9026612B2 (en) | Generating a custom parameter rule based on a comparison of a run-time value to a request URL | |
CN111913998A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN112256275A (zh) | 代码混淆方法、装置、电子设备及介质 | |
CN110545324B (zh) | 数据处理方法、装置、系统、网络设备和存储介质 | |
CN113722754A (zh) | 隐私可执行文件的生成方法、装置和服务器 | |
US20190324763A1 (en) | Insertion of custom activities in an orchestrated application suite | |
CN110781200A (zh) | 一种区块链异常数据的处理方法、装置、设备和介质 | |
US10169398B2 (en) | Identifying corrupted text segments | |
CN110222017A (zh) | 实时数据的处理方法、装置、设备及计算机可读存储介质 | |
US9898282B2 (en) | Automatic comment creation for computer files | |
CN110109912A (zh) | 一种标识符生成方法和装置 | |
CN111563253A (zh) | 智能合约运行方法、装置、设备及存储介质 | |
US10621163B2 (en) | Tracking and reusing function results | |
CN115270180A (zh) | 日志存储、封装方法和装置 | |
CN114168607A (zh) | 全局序列号生成方法、装置、设备、介质和产品 | |
CN111639116A (zh) | 数据访问连接会话保护方法以及装置 | |
US9712942B2 (en) | Performance of secure mobile applications | |
US20240104224A1 (en) | Privacy-preserving search using homomorphic encryption | |
CN111176610B (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 |