CN110795741B - 对数据进行安全性处理的方法和装置 - Google Patents

对数据进行安全性处理的方法和装置 Download PDF

Info

Publication number
CN110795741B
CN110795741B CN201810865050.4A CN201810865050A CN110795741B CN 110795741 B CN110795741 B CN 110795741B CN 201810865050 A CN201810865050 A CN 201810865050A CN 110795741 B CN110795741 B CN 110795741B
Authority
CN
China
Prior art keywords
data
ciphertext
parameter
parameter data
ciphertext data
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.)
Active
Application number
CN201810865050.4A
Other languages
English (en)
Other versions
CN110795741A (zh
Inventor
高雪松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN201810865050.4A priority Critical patent/CN110795741B/zh
Publication of CN110795741A publication Critical patent/CN110795741A/zh
Application granted granted Critical
Publication of CN110795741B publication Critical patent/CN110795741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种对数据进行安全性处理的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:依次获取参数数据集合中的参数数据;对参数数据的数据类型进行判定;当数据类型为指定数据类型时,根据参数数据对密文数据对象进行安全性处理,以使密文数据对象包括参数数据对应的明文数据和密文数据。该实施方式能够实现数据入库前自动加密,数据出库后自动解密的功能,在避免出现漏处理的情况的同时还避免了对同一参数数据重复进行加、解密运算,从而提高了系统性能,减少了冗余操作,避免了数据混淆,逻辑处理更为清晰。

Description

对数据进行安全性处理的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种对数据进行安全性处理的方法和装置。
背景技术
出于数据安全性的考虑,对于某些敏感数据,例如:与用户相关的用户姓名、手机号、卡号、密码信息等数据,都必须进行加密存储。但在数据使用的时候需要明文信息,系统需要对数据进行加解密操作。
现有操作是将数据调用加密程序变成密文后再发送给数据库进行数据库操作,保证数据库中为密文数据;在数据库查询到数据后需要调用解密程序对数据做解密处理,以保证应用使用正确的明文信息;对某些敏感隐私数据,在数据展示时需要先进行数据脱敏再展示。所有的这些对数据进行安全性处理的操作逻辑耦合在业务处理代码中。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1)每次进行数据库操作都需要做加、解密操作,明文密文交替覆盖,操作频繁,影响系统性能;
2)开发人员需要清楚代码逻辑节点中数据是明文还是密文,明文和密文容易混淆造成处理错误;
3)无前置检查机制,容易忘记做加、解密处理;
4)加、解密操作代码冗余较多,耦合在业务逻辑中,不好维护;
5)数据脱敏操作单独处理,无统一标准,不同业务的脱敏数据可能格式不一致,如:139****5678或1391234****。
发明内容
有鉴于此,本发明实施例提供一种对数据进行安全性处理的方法和装置,能够实现数据入库前自动加密,数据出库后自动解密的功能,在避免出现漏处理的情况的同时还避免了对同一参数数据重复进行加、解密运算,从而提高了系统性能,减少了冗余操作,避免了数据混淆,逻辑处理更为清晰。
为实现上述目的,根据本发明实施例的一个方面,提供了一种对数据进行安全性处理的方法。
一种对数据进行安全性处理的方法,包括:依次获取参数数据集合中的参数数据;对所述参数数据的数据类型进行判定;当所述数据类型为指定数据类型时,根据所述参数数据对密文数据对象进行安全性处理,以使所述密文数据对象包括所述参数数据对应的明文数据和密文数据。
可选地,若所述参数数据为明文数据,则所述密文数据对象包括所述参数数据及其对应的密文数据;并且,根据所述参数数据对密文数据对象进行安全性处理包括:对所述参数数据进行加密处理以得到所述参数数据对应的密文数据,并将所述参数数据及其对应的密文数据赋值给所述密文数据对象。
可选地,若所述参数数据为密文数据,则所述密文数据对象包括所述参数数据及其对应的明文数据;并且,根据所述参数数据对密文数据对象进行安全性处理包括:对所述参数数据进行解密处理以得到所述参数数据对应的明文数据,并将所述参数数据及其对应的明文数据赋值给所述密文数据对象。
可选地,所述密文数据对象还包括所述参数数据对应的脱敏数据和进行数据脱敏的处理逻辑。
可选地,所述密文数据对象还包括数据状态标识,且所述数据状态标识根据所述密文数据对象的变更而更改。
可选地,根据所述参数数据对密文数据对象进行安全性处理之前,还包括:获取所述参数数据对应的密文数据对象,并根据其中包括的数据状态标识确定对所述密文数据对象的处理方式。
可选地,依次获取参数数据集合中的参数数据之前,还包括:按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合所述黑白名单配置的请求包括的请求参数保存到所述参数数据集合;以及,将数据库的响应包括的返回值保存到所述参数数据集合。
根据本发明实施例的另一方面,提供了一种对数据进行安全性处理的装置。
一种对数据进行安全性处理的装置,包括:数据获取模块,用于依次获取参数数据集合中的参数数据;类型判定模块,用于对所述参数数据的数据类型进行判定;数据处理模块,用于当所述数据类型为指定数据类型时,根据所述参数数据对密文数据对象进行安全性处理,以使所述密文数据对象包括所述参数数据对应的明文数据和密文数据。
可选地,若所述参数数据为明文数据,则所述密文数据对象包括所述参数数据及其对应的密文数据;并且,所述数据处理模块还用于:对所述参数数据进行加密处理以得到所述参数数据对应的密文数据,并将所述参数数据及其对应的密文数据赋值给所述密文数据对象。
可选地,若所述参数数据为密文数据,则所述密文数据对象包括所述参数数据及其对应的明文数据;并且,所述数据处理模块还用于:对所述参数数据进行解密处理以得到所述参数数据对应的明文数据,并将所述参数数据及其对应的明文数据赋值给所述密文数据对象。
可选地,所述密文数据对象还包括所述参数数据对应的脱敏数据和进行数据脱敏的处理逻辑。
可选地,所述密文数据对象还包括数据状态标识,且所述数据状态标识根据所述密文数据对象的变更而更改。
可选地,还包括方式确定模块,用于:在使用封装的密文数据对象对所述参数数据进行安全性处理之前,获取所述参数数据对应的密文数据对象,并根据其中包括的数据状态标识确定对所述密文数据对象的处理方式。
可选地,还包括数据保存模块,用于:在依次获取参数数据集合中的参数数据之前,按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合所述黑白名单配置的请求包括的请求参数保存到所述参数数据集合;以及,将数据库的响应包括的返回值保存到所述参数数据集合。
可选地,所述装置基于持久层框架插件实现。
根据本发明实施例的又一方面,提供了一种对数据进行安全性处理的电子设备。
一种对数据进行安全性处理的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的对数据进行安全性处理的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的对数据进行安全性处理的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过获取参数数据并对其数据类型进行判定,然后根据指定数据类型的参数数据对密文数据对象进行处理以使密文数据对象包括参数数据对应的明文数据和密文数据,可以实现数据入库前自动加密,数据出库后自动解密的功能,避免了出现漏处理的情况,同时简化了应用中明文数据与密文数据之间的转换操作,通过密文数据对象可区分存储明文与密文,从而避免了造成数据混淆,逻辑处理更为清晰。另外,本发明还通过在密文数据对象中封装数据脱敏的处理逻辑以同时实现数据脱敏,且可保证脱敏后数据的显示格式一致;并且,本发明中的加解密算法可通过接口配置进行调用,从而提高了开发效率,提高了代码的可维护性。最后,本发明通过使用数据状态标识来表示参数数据对应的密文数据对象的状态,并根据数据状态标识来确定对密文数据对象的处理方式,当需要进行处理时再进行相应的处理,从而避免了对同一参数数据重复进行加、解密运算,提高了系统性能,减少了冗余操作。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的对数据进行安全性处理的方法的主要步骤示意图;
图2是本发明一个实施例的实现原理示意图;
图3是本发明另一个实施例的数据交互流程示意图;
图4是根据本发明实施例的对数据进行安全性处理的装置的主要模块示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了解决现有技术中存在的问题,本发明提供了一种对数据进行安全性处理的方法和装置,基于持久层框架插件,实现数据入库前自动加密,数据出库后自动解密,同时还可以按照预定规则生成脱敏数据,实现通过配置的方式来自动加、解密或进行数据脱敏等处理,并将处理后的数据缓存到应用端,以解决每次获取数据都进行加、解密操作带来的系统资源浪费。本发明的对数据进行安全性处理的方法的主要突出特点如下:
1)加、解密逻辑统一由插件调用,只需进行配置即可,提高开发效率,逻辑清晰,提高代码可维护性;
2)明文和密文数据不会交替覆盖,分字段缓存数据(明文/密文/脱敏),减少每次进行数据库操作时重复加、解密的冗余操作;
3)统一规范管理,按预定标准执行数据脱敏操作,保证显示的数据格式一致;
4)明文、密文分不同字段存储,不会造成混淆;
5)自动加、解密,不会出现漏处理问题。
图1是根据本发明实施例的对数据进行安全性处理的方法的主要步骤示意图。如图1所示,本发明实施例的对数据进行安全性处理的方法主要包括如下的步骤S101至步骤S103。
步骤S101:依次获取参数数据集合中的参数数据;
步骤S102:对参数数据的数据类型进行判定;
步骤S103:当数据类型为指定数据类型时,根据参数数据对密文数据对象进行安全性处理,以使密文数据对象包括参数数据对应的明文数据和密文数据。
根据本发明的技术方案,基于持久层框架插件实现对数据进行安全性处理的方法。其中,参数数据集合中的参数数据可以是由应用程序发送给数据库的请求参数,也可以是数据库的返回值,还可以是其他需要进行加、解密或数据脱敏处理的数据,例如:若两个应用程序之间进行数据传输时要求数据加密,那么,即可根据本发明的持久层框架插件将需要进行加密处理的数据进行安全性处理。其中,持久层框架例如可以使用:Hibernate、MyBatis、TopLink等等。在后续的实施例中,以使用MyBatis作为持久层框架为例进行方案介绍。
根据本发明的一个实施例,若参数数据为明文数据,则参数数据对应的密文数据对象包括该参数数据及其对应的密文数据;并且,步骤S103中根据参数数据对密文数据对象进行安全性处理的过程具体包括:
对参数数据进行加密处理以得到参数数据对应的密文数据,并将参数数据及其对应的密文数据赋值给密文数据对象。
根据本发明的另一个实施例,若参数数据为密文数据,则参数数据对应的密文数据对象包括该参数数据及其对应的明文数据;并且,步骤S103中根据参数数据对密文数据对象进行安全性处理的过程具体包括:
对参数数据进行解密处理以得到参数数据对应的明文数据,并将参数数据及其对应的明文数据赋值给密文数据对象。
根据本发明的又一个实施例,密文数据对象还可以包括脱敏数据字段和进行数据脱敏的处理逻辑。如此,即可使用进行数据脱敏的处理逻辑中包括的数据脱敏规则对数据进行脱敏处理,以使得脱敏后的显示结果格式一致。数据脱敏规则例如是:“EncryptStringcardNo=new EncryptString(3,4)”;该规则表示:将前3个字符和后4个字符进行明文展示,其他字符进行脱敏数据展示。
根据本发明的又一个实施例,密文数据对象还可以包括数据状态标识,且数据状态标识根据密文数据对象的变更而更改。
根据本发明的再一个实施例,在步骤S103根据参数数据对密文数据对象进行安全性处理之前,还可以包括:获取参数数据对应的密文数据对象,并根据其中包括的数据状态标识,确定对该密文数据对象的处理方式。具体地,可根据参数数据对应的密文数据对象中包括的数据状态标识,判断是否需要对该参数数据进行处理,对该参数数据进行何种处理(加密或者解密),以及将何种参数赋值给密文数据对象。
根据本发明的实施例,在步骤S101之前,还可以:
按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合黑白名单配置的请求包括的请求参数保存到参数数据集合;
以及,将数据库的响应包括的返回值保存到参数数据集合。
下面结合附图介绍本发明的具体实现过程。
图2是本发明一个实施例的实现原理示意图。在本发明的实施例中,主要是通过将应用程序端原来与数据一一映射的应用字段封装成特定的密文数据对象,即:应用程序端建立数据与密文数据对象的映射关系。密文数据对象包括明文数据(value)、密文数据(encrypt)和脱敏数据(mask)3个字段,通过对这3个字段,以及进行数据脱敏的处理逻辑一起进行封装以得到密文数据对象。其中,密文数据是由明文数据加密得到的,相应的,明文数据是由密文数据进行解密得到的,脱敏数据是由明文数据根据预设的数据脱敏规则进行脱敏处理得到的。通过使用“set(设置)”方法和“get(获取)”方法对密文数据对象进行赋值和取值。使用密文数据对象进行数据封装的过程例如:假设某数据字段(cardNo)定义为:String cardNo=“1234567890”;那么,使用密文数据对象(EncryptString对象)对其进行封装后的一种可能为:
EncryptString cardNo=new EncryptString(4,4);//将前4个字符和后4个字符进行明文展示,其他字符进行脱敏数据展示;
cardNo.setValue(“1234567890”);//明文数据;
cardNo.setEncript(“abcdefghi”);//密文数据。
如图2所示,本发明实施例的数据安全性处理插件(以下简称为“插件”)基于持久层框架(例如:MyBatis)进行开发,且部署于应用程序的持久层。插件根据功能实现主要包括密文数据对象和逻辑处理器。逻辑处理器用于对参数数据进行获取、数据类型判定以及根据参数数据对密文数据对象进行处理。插件中对明文数据进行加密的处理逻辑和对密文数据进行解密的处理逻辑可以是具体的加、解密算法;也可以是为加、解密算法提供统一的配置接口(加解密接口),由用户根据使用需要设定不同的加、解密算法,在进行加、解密处理时,通过加解密接口调用对应的加、解密算法来对数据进行处理。同样地,密文数据对象中封装的数据脱敏规则也可为用户提供配置入口,用户根据应用需要灵活设置需要的数据脱敏规则。同时,插件还维护密文数据对象中的密文数据字段与数据库的映射关系,以及对密文数据对象中的明文数据字段、密文数据字段和脱敏数据字段做数据同步。以持久层框架MyBatis为例,插件在进行密文数据字段与数据库的映射时的一种实现例如:“<resultcolumn="CARD_NO"property="cardNo.encript"jdbcType="VARCHAR"/>”。
在数据交互的过程中,为了判断插件接收到的参数数据是否需要被处理为密文数据对象,本发明的实施例中定义了一种新的数据类型“密文数据对象类型”,其用于标识该参数数据是否需要被插件处理为密文数据对象。通常情况下,敏感数据(如:用户的手机号码、密码等)即需要将其数据类型设置为“密文数据对象类型”,而其他普通数据无需经过插件处理,其数据类型一般为字符串等常用的数据类型。
当应用程序与数据库进行数据交互时,应用程序发送数据操作请求给数据库,请求中包括的请求参数是明文数据。插件在接收到请求后,插件的逻辑处理器将明文的请求参数提取出来并判断其数据类型是否为指定的“密文数据对象类型”,若是,则根据请求参数对密文数据对象进行处理以得到该请求参数对应的密文数据对象。其中,插件的逻辑处理器可通过在插件中设置的加密算法或者通过插件提供的加解密接口调用相应的加密算法来对明文的请求参数进行加密运算以得到请求参数对应的密文数据,并将明文的请求参数及其对应的密文数据分别赋值给密文数据对象的明文数据字段和密文数据字段;然后,通过使用密文数据对象中封装的数据脱敏规则对明文的请求参数进行数据脱敏以得到请求参数对应的脱敏数据,从而得到请求参数对应的密文数据对象。然后,将请求参数对应的密文数据对象保存在应用程序本地,以便下次可以直接使用该密文数据对象中的密文数据进行数据库访问,无需重复加密。
之后,插件将接收到的请求中的明文的请求参数替换为对应的密文数据,然后,将替换后的请求发送给数据库以进行数据操作。
由于数据库的返回值是密文数据,因此,当插件接收到数据库的响应后,将响应中的返回值提取出来并判断其数据类型是否为指定的“密文数据对象类型”,若是,则根据返回值对密文数据对象进行处理以得到该返回值对应的密文数据对象,并将数据库响应中的返回值替换为对应的密文数据对象然后返回给应用程序。其中,插件的逻辑处理器可通过在插件中设置的解密算法或者通过插件提供的加解密接口调用相应的解密算法来对密文的返回值进行解密运算以得到返回值对应的明文数据,并将密文的返回值及其对应的明文数据分别赋值给密文数据对象的密文数据字段和明文数据字段;然后,通过使用密文数据对象中封装的数据脱敏规则对明文数据进行数据脱敏以得到返回值对应的脱敏数据,从而得到返回值对应的密文数据对象。
另外,在具体实现时,还可以通过在密文数据对象中设置数据状态标识,来表示参数数据对应的密文数据对象的状态,并且数据状态标识还可根据密文数据对象的变更而自动更改。一般地,可以整型值(如:0、1、2、3等)作为数据状态(status)标识,例如:假设仅需要表示参数数据是否已进行加密或解密,那么有如下几种数据状态:当status=0时表示空数据对象;当status=1时表示新明文数据,未加密;当status=2时表示新密文数据,未解密;当status=3时表示当前明密文数据一致。当插件获取的参数数据的数据类型为指定数据类型时,说明该参数数据需要通过插件进行处理以得到该参数数据对应的密文数据对象。此时,插件会获取该参数数据对应的密文数据对象,并根据密文数据对象的数据状态来确定是否需要对该参数数据对应的密文数据对象进行处理以及进行何种处理。其中,若status=0或status=3则无需对该密文数据对象进行处理;否则,当status=1时,需要对该参数数据进行加密运算并将运算得到的密文数据赋值给密文数据对象,以及更改status=3;当status=2时,需要对该参数数据进行解密运算并将运算得到的明文数据赋值给密文数据对象,以及更改status=3。通过使用数据状态标识来表示参数数据对应的密文数据对象的状态,并根据数据状态标识来确定对密文数据对象的处理方式,当需要进行处理时再进行相应的处理,从而避免了对同一参数数据重复进行加、解密运算,提高系统性能,且参数数据对应的明文数据和密文数据分字段存储,不会交替覆盖,减少了冗余操作的同时还避免了数据混淆,逻辑处理更为清晰。
根据本发明的另一个实施例,插件在接收到应用程序发送给数据库的数据操作请求后,还可以通过设置一个过滤器,过滤器按黑白名单配置对数据操作请求进行过滤,以删除无需处理的请求,从而减少插件的无用工作量。以MySQL数据库为例,插件可根据数据库操作语句(MySQL语句)的SqlId来对数据操作请求进行过滤(其他数据库持久层框架可按相关方法过滤),以过滤掉不需要处理的类和方法,提高处理效率。
具体实施时,可在白名单中配置需要插件处理的类或方法,在黑名单中配置插件排除的类或方法,只有不在黑名单中并且在白名单中的操作才会被处理,黑、白名单配合使用可以有效减少插件的无用运行。因白名单可能会很多,故而可以使用通配符来减少配置项,并结合黑名单排除白名单通配符包含的不需要处理的方法。其中,通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。以如下的黑白名单配置为例:
“<property name="whiteList"><list><value>com.aa.UserInfo.*</value></list></property>;//白名单中配置需要插件处理的类或方法;
<property name="blackList"><list><value>com.aa.UserInfo.get*</value></list></property>;//黑名单中配置插件排除的类或方法”。根据该黑白名单配置,可知“com.aa.UserInfo”这个类下面,除了get开头的方法之外,其他方法都需要使用插件进行处理,每个名单(list)配置下可以有多个值(value)。
图3是本发明另一个实施例的数据交互流程示意图。如图3所示,在本发明的另一个实施例中,示出了应用程序与数据库进行数据交互时,插件对数据的安全性处理以及对请求或响应的转发的过程。预先可进行插件的初始化,包括:注入加解密接口实现、读取黑白名单配置以及初始化过滤器。初始化完成后,即可通过插件进行数据交互,主要流程包括:
1、插件收到应用程序针对数据库发起的数据操作CRUD(是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写)请求后,首先按照黑白名单配置对请求进行过滤,对于符合黑白名单配置的请求将执行步骤2,否则,插件不进行处理,直接将该请求转发给数据库以进行后续的CRUD操作;
2、获取请求的请求参数,遍历所有的请求参数并判断其数据类型,若某个请求参数的数据类型为指定的“密文数据对象类型”,则根据该请求参数对密文数据对象进行处理,具体地,由插件的逻辑处理器根据加密逻辑(例如:通过调用加解密接口以调用相应的加密算法)对该请求参数进行加密以生成密文数据,并根据数据脱敏规则进行数据脱敏以生成脱敏数据,然后将密文数据和脱敏数据赋值给密文数据对象,从而得到该请求参数对应的密文数据对象;
3、将获取的请求中的请求参数替换为对应的密文数据,然后将替换后的请求发送给数据库以进行后续的CRUD操作;
4、在收到数据库返回的响应后,获取响应中包括的返回值,然后根据返回值对密文数据对象进行处理,具体处理过程包括:插件的逻辑处理器遍历所有返回值并判断其数据类型,若某个返回值的数据类型为指定的“密文数据对象类型”,则根据该返回值对密文数据对象进行处理,根据解密逻辑(例如:通过调用加解密接口以调用相应的解密算法)对该返回值进行解密以生成明文数据,并根据数据脱敏规则进行数据脱敏以生成脱敏数据,然后将明文数据和脱敏数据赋值给密文数据对象,从而得到该返回值对应的密文数据对象;
5、将获取的响应中的返回值替换为对应的密文数据对象,并将替换后的响应返回给应用程序,此次数据交互流程结束。
图4是根据本发明实施例的对数据进行安全性处理的装置的主要模块示意图。如图4所示,本发明实施例的对数据进行安全性处理的装置400主要包括数据获取模块、类型判定模块和数据处理模块。
数据获取模块401用于依次获取参数数据集合中的参数数据;
类型判定模块402用于对参数数据的数据类型进行判定;
数据处理模块403用于当数据类型为指定数据类型时,根据参数数据对密文数据对象进行安全性处理,以使密文数据对象包括参数数据对应的明文数据和密文数据。
根据本发明的一个实施例,若参数数据为明文数据,则密文数据对象包括参数数据及其对应的密文数据;并且,
数据处理模块403还可以用于:
对参数数据进行加密处理以得到参数数据对应的密文数据,并将参数数据及其对应的密文数据赋值给密文数据对象。
根据本发明的另一个实施例,若参数数据为密文数据,则密文数据对象包括参数数据及其对应的明文数据;并且,
数据处理模块403还可以用于:
对参数数据进行解密处理以得到参数数据对应的明文数据,并将参数数据及其对应的明文数据赋值给所述密文数据对象。
根据本发明实施例的技术方案,密文数据对象还可以包括参数数据对应的脱敏数据字段和进行数据脱敏的处理逻辑。
根据本发明实施例的技术方案,密文数据对象还可以包括数据状态标识,且数据状态标识根据密文数据对象的变更而更改。
根据本发明的又一个实施例,对数据进行安全性处理的装置400还可以包括方式确定模块(图中未示出),用于:
在根据参数数据对密文数据对象进行安全性处理之前,获取参数数据对应的密文数据对象,并根据其中包括的数据状态标识确定对密文数据对象的处理方式。
根据本发明的又一个实施例,对数据进行安全性处理的装置400还可以包括数据保存模块(图中未示出),用于:
在依次获取参数数据集合中的参数数据之前,按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合黑白名单配置的请求包括的请求参数保存到参数数据集合;
以及,将数据库的响应包括的返回值保存到参数数据集合。
根据本发明的实施例,对数据进行安全性处理的装置400基于持久层框架插件实现。
根据本发明实施例的技术方案,通过获取参数数据并对其数据类型进行判定,然后根据指定数据类型的参数数据对密文数据对象进行处理以使密文数据对象包括参数数据对应的明文数据和密文数据,可以实现数据入库前自动加密,数据出库后自动解密的功能,避免了出现漏处理的情况,同时简化了应用中明文数据与密文数据之间的转换操作,通过密文数据对象可区分存储明文与密文,从而避免了造成数据混淆,逻辑处理更为清晰。另外,本发明还通过在密文数据对象中封装数据脱敏的处理逻辑以同时实现数据脱敏,且可保证脱敏后数据的显示格式一致;并且,本发明中的加解密算法可通过接口配置进行调用,从而提高了开发效率,提高了代码的可维护性。最后,本发明通过使用数据状态标识来表示参数数据对应的密文数据对象的状态,并根据数据状态标识来确定对密文数据对象的处理方式,当需要进行处理时再进行相应的处理,从而避免了对同一参数数据重复进行加、解密运算,提高了系统性能,减少了冗余操作。
图5示出了可以应用本发明实施例的对数据进行安全性处理的方法或对数据进行安全性处理的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的对数据进行安全性处理的方法一般由服务器505执行,相应地,对数据进行安全性处理的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统600的结构示意图。图6示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据获取模块、类型判定模块和数据处理模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,数据获取模块还可以被描述为“用于依次获取参数数据集合中的参数数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:依次获取参数数据集合中的参数数据;对所述参数数据的数据类型进行判定;当所述数据类型为指定数据类型时,根据所述参数数据对密文数据对象进行安全性处理,以使所述密文数据对象包括所述参数数据对应的明文数据和密文数据。
根据本发明实施例的技术方案,通过获取参数数据并对其数据类型进行判定,然后根据指定数据类型的参数数据对密文数据对象进行处理以使密文数据对象包括参数数据对应的明文数据和密文数据,可以实现数据入库前自动加密,数据出库后自动解密的功能,避免了出现漏处理的情况,同时简化了应用中明文数据与密文数据之间的转换操作,通过密文数据对象可区分存储明文与密文,从而避免了造成数据混淆,逻辑处理更为清晰。另外,本发明还通过在密文数据对象中封装数据脱敏的处理逻辑以同时实现数据脱敏,且可保证脱敏后数据的显示格式一致;并且,本发明中的加解密算法可通过接口配置进行调用,从而提高了开发效率,提高了代码的可维护性。最后,本发明通过使用数据状态标识来表示参数数据对应的密文数据对象的状态,并根据数据状态标识来确定对密文数据对象的处理方式,当需要进行处理时再进行相应的处理,从而避免了对同一参数数据重复进行加、解密运算,提高了系统性能,减少了冗余操作。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (11)

1.一种对数据进行安全性处理的方法,其特征在于,包括:
依次获取参数数据集合中的参数数据;
对所述参数数据的数据类型进行判定;
当所述数据类型为指定数据类型时,根据所述参数数据对密文数据对象进行安全性处理,以使所述密文数据对象包括所述参数数据对应的明文数据和密文数据;所述密文数据对象是通过将应用程序端与数据一一映射的应用字段封装成的,且包括明文数据、密文数据、脱敏数据和进行数据脱敏的处理逻辑;
若所述参数数据为明文数据,则所述密文数据对象包括所述参数数据及其对应的密文数据;并且,根据所述参数数据对密文数据对象进行安全性处理包括:对所述参数数据进行加密处理以得到所述参数数据对应的密文数据,并将所述参数数据及其对应的密文数据赋值给所述密文数据对象;
若所述参数数据为密文数据,则所述密文数据对象包括所述参数数据及其对应的明文数据;并且,根据所述参数数据对密文数据对象进行安全性处理包括:对所述参数数据进行解密处理以得到所述参数数据对应的明文数据,并将所述参数数据及其对应的明文数据赋值给所述密文数据对象。
2.根据权利要求1所述的方法,其特征在于,所述密文数据对象还包括数据状态标识,且所述数据状态标识根据所述密文数据对象的变更而更改。
3.根据权利要求2所述的方法,其特征在于,使用封装的密文数据对象对所述参数数据进行安全性处理之前,还包括:
获取所述参数数据对应的密文数据对象,并根据其中包括的数据状态标识确定对所述密文数据对象的处理方式。
4.根据权利要求1所述的方法,其特征在于,依次获取参数数据集合中的参数数据之前,还包括:
按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合所述黑白名单配置的请求包括的请求参数保存到所述参数数据集合;
以及,将数据库的响应包括的返回值保存到所述参数数据集合。
5.一种对数据进行安全性处理的装置,其特征在于,包括:
数据获取模块,用于依次获取参数数据集合中的参数数据;
类型判定模块,用于对所述参数数据的数据类型进行判定;
数据处理模块,用于当所述数据类型为指定数据类型时,根据所述参数数据对密文数据对象进行安全性处理,以使所述密文数据对象包括所述参数数据对应的明文数据和密文数据;所述密文数据对象是通过将应用程序端与数据一一映射的应用字段封装成的,且包括明文数据、密文数据、脱敏数据和进行数据脱敏的处理逻辑;
若所述参数数据为明文数据,则所述密文数据对象包括所述参数数据及其对应的密文数据;并且,所述数据处理模块还用于:对所述参数数据进行加密处理以得到所述参数数据对应的密文数据,并将所述参数数据及其对应的密文数据赋值给所述密文数据对象;
若所述参数数据为密文数据,则所述密文数据对象包括所述参数数据及其对应的明文数据;并且,所述数据处理模块还用于:对所述参数数据进行解密处理以得到所述参数数据对应的明文数据,并将所述参数数据及其对应的明文数据赋值给所述密文数据对象。
6.根据权利要求5所述的装置,其特征在于,所述密文数据对象还包括数据状态标识,且所述数据状态标识根据所述密文数据对象的变更而更改。
7.根据权利要求6所述的装置,其特征在于,还包括方式确定模块,用于:
在根据所述参数数据对密文数据对象进行安全性处理之前,获取所述参数数据对应的密文数据对象,并根据其中包括的数据状态标识确定对所述密文数据对象的处理方式。
8.根据权利要求5所述的装置,其特征在于,还包括数据保存模块,用于:
在依次获取参数数据集合中的参数数据之前,按照黑白名单配置对应用程序发送给数据库的请求进行过滤,并将符合所述黑白名单配置的请求包括的请求参数保存到所述参数数据集合;
以及,将数据库的响应包括的返回值保存到所述参数数据集合。
9.根据权利要求5所述的装置,其特征在于,所述装置基于持久层框架插件实现。
10.一种对数据进行安全性处理的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201810865050.4A 2018-08-01 2018-08-01 对数据进行安全性处理的方法和装置 Active CN110795741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810865050.4A CN110795741B (zh) 2018-08-01 2018-08-01 对数据进行安全性处理的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810865050.4A CN110795741B (zh) 2018-08-01 2018-08-01 对数据进行安全性处理的方法和装置

Publications (2)

Publication Number Publication Date
CN110795741A CN110795741A (zh) 2020-02-14
CN110795741B true CN110795741B (zh) 2024-04-05

Family

ID=69425018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810865050.4A Active CN110795741B (zh) 2018-08-01 2018-08-01 对数据进行安全性处理的方法和装置

Country Status (1)

Country Link
CN (1) CN110795741B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783117B (zh) * 2020-06-30 2024-04-30 中国工商银行股份有限公司 明文数据处理方法、装置及系统
CN114025358B (zh) * 2020-07-15 2024-02-13 成都鼎桥通信技术有限公司 数据脱敏方法、装置、设备及存储介质
CN112966303A (zh) * 2021-03-10 2021-06-15 中国民航信息网络股份有限公司 数据的加解密方法及装置、电子设备、计算机存储介质
CN117195275B (zh) * 2023-11-08 2024-02-27 成方金融科技有限公司 数据访问方法、装置、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502041A (zh) * 2006-08-11 2009-08-05 松下电器产业株式会社 加密装置、解密装置、加密方法以及解密方法
CN103607273A (zh) * 2013-07-18 2014-02-26 焦点科技股份有限公司 一种基于时间期限控制的数据文件加解密方法
CN103605741A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象加密存储方法、装置及系统
CN105022966A (zh) * 2015-07-21 2015-11-04 郭俊雄 数据库数据加密解密方法和系统
CN106971121A (zh) * 2017-04-10 2017-07-21 深圳乐信软件技术有限公司 数据处理方法、装置、服务器及存储介质
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法
CN107613005A (zh) * 2017-09-20 2018-01-19 携程旅游信息技术(上海)有限公司 反向代理方法及装置、电子设备、存储介质
CN108280356A (zh) * 2018-01-17 2018-07-13 吉浦斯信息咨询(深圳)有限公司 文件加解密方法、装置、处理终端及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10644876B2 (en) * 2017-01-20 2020-05-05 Enveil, Inc. Secure analytics using homomorphic encryption

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101502041A (zh) * 2006-08-11 2009-08-05 松下电器产业株式会社 加密装置、解密装置、加密方法以及解密方法
CN103607273A (zh) * 2013-07-18 2014-02-26 焦点科技股份有限公司 一种基于时间期限控制的数据文件加解密方法
CN103605741A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象加密存储方法、装置及系统
CN105022966A (zh) * 2015-07-21 2015-11-04 郭俊雄 数据库数据加密解密方法和系统
CN107168998A (zh) * 2017-03-30 2017-09-15 广东工业大学 一种基于保留格式的数据库透明加密方法
CN106971121A (zh) * 2017-04-10 2017-07-21 深圳乐信软件技术有限公司 数据处理方法、装置、服务器及存储介质
CN107613005A (zh) * 2017-09-20 2018-01-19 携程旅游信息技术(上海)有限公司 反向代理方法及装置、电子设备、存储介质
CN108280356A (zh) * 2018-01-17 2018-07-13 吉浦斯信息咨询(深圳)有限公司 文件加解密方法、装置、处理终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN110795741A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
CN110795741B (zh) 对数据进行安全性处理的方法和装置
CN109154968B (zh) 用于组织内的安全且高效的通信的系统和方法
CN107292197B (zh) 数据加密方法、解密方法、加密装置和解密装置
CN110839004A (zh) 访问认证的方法和装置
CN110795315A (zh) 监控业务的方法和装置
CN110753020A (zh) 网络请求处理方法和装置
CN113556359A (zh) 一种通讯协议转换方法、设备、系统及网关设备
CN113595927A (zh) 一种旁路模式下镜像流量的处理方法和装置
CN114780982A (zh) 一种流程业务流转方法、装置和系统
CN112966303A (zh) 数据的加解密方法及装置、电子设备、计算机存储介质
CN113761566A (zh) 一种数据处理方法和装置
CN112953719B (zh) 一种令牌认证方法和装置
CN113010238A (zh) 一种微应用调用接口的权限确定方法、装置和系统
CN112115500A (zh) 一种访问文件的方法、装置及系统
CN112182518A (zh) 一种软件部署方法和装置
CN107707528B (zh) 一种用户信息隔离的方法和装置
CN116244682A (zh) 数据库的访问方法、装置、设备以及存储介质
CN115567596A (zh) 云服务资源部署方法、装置、设备及存储介质
CN113765983B (zh) 一种站点服务的部署方法和装置
CN111984613B (zh) 一种共享文件的方法、装置和系统
CN115080274A (zh) 业务处理方法、装置和系统、以及接口映射系统
CN111984614B (zh) 一种共享文件的方法、装置和系统
CN113760487A (zh) 一种业务处理方法和装置
CN112463616A (zh) 一种面向Kubernetes容器平台的混沌测试方法和装置
CN111984616A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address after: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant after: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

Address before: 101111 Room 221, 2nd Floor, Block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone

Applicant before: BEIJING JINGDONG FINANCIAL TECHNOLOGY HOLDING Co.,Ltd.

GR01 Patent grant
GR01 Patent grant