掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、电子设备及介质

文献发布时间:2024-04-18 19:58:21


数据处理方法、装置、电子设备及介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、电子设备及介质。

背景技术

数据脱敏,是指对敏感信息或隐私信息进行数据变形,以实现数据的隐私保护。目前,数据脱敏方式可按照不同的业务场景,自行定义和编写脱敏规则,比如无效化、随机值、数据替换、对称加密、平均值、偏移和取整等。

然而上述数据脱敏方式,无法适配JSON(JavaScript Object Notation,JS对象简谱,一种轻量级的数据交换格式)格式的数据(后续称为JSON数据),当利用上述数据脱敏方式,对JSON数据进行脱敏后,会破坏JSON数据的数据格式或数据结构,将数据结构破坏后的JSON数据导入数据库后,会导致无法通过SQL(Structured Query Language,结构化查询语言)语句进行数据查询。

发明内容

本公开旨在至少在一定程度上解决相关技术中的技术问题之一。

本公开提出一种数据处理方法、装置、电子设备及介质,以实现仅对第一业务数据中与需要加密的加密对象匹配的数据字段进行加密,不会破坏第一业务数据的数据格式或结构,从而将加密后的第一业务数据导入数据库中,该加密后的第一业务数据可以用于数据的正常查询,提升数据查询的有效性。并且,可以实现针对不同来源的业务数据(比如来源于不同产品或不同业务的业务数据),配置不同的加密策略和加密对象,以满足不同业务场景的个性化的隐私保护需求。

本公开第一方面实施例提出了一种数据处理方法,包括:

获取数据导入请求,其中,所述数据导入请求中携带第一业务数据和目标标识,所述目标标识用于指示所述第一业务数据的来源;

根据所述目标标识,获取与所述目标标识关联的加密配置信息;

在所述加密配置信息中包括加密策略和加密对象的情况下,根据所述加密策略,对所述第一业务数据中与所述加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据;

将所述加密后的第一业务数据导入数据库。

本公开第二方面实施例提出了一种数据处理装置,包括:

第一获取模块,用于获取数据导入请求,其中,所述数据导入请求中携带第一业务数据和目标标识,所述目标标识用于指示所述第一业务数据的来源;

第二获取模块,用于根据所述目标标识,获取与所述目标标识关联的加密配置信息;

加密模块,用于在所述加密配置信息中包括加密策略和加密对象的情况下,根据所述加密策略,对所述第一业务数据中与所述加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据;

导入模块,用于将所述加密后的第一业务数据导入数据库。

本公开第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开第一方面实施例提出的数据处理方法。

本公开第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开第一方面实施例提出的数据处理方法。

本公开第五方面实施例提出了一种计算机程序,包括计算机程序,所述计算机程序在被处理器执行时实现本公开第一方面实施例所述的数据处理方法。

上述本公开中的一个实施例至少具有如下优点或有益效果:

通过获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源;获取与目标标识关联的加密配置信息;在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据;将加密后的第一业务数据导入数据库。由此,可以实现仅对第一业务数据中与需要加密的加密对象匹配的数据字段进行加密,不会破坏第一业务数据的数据格式或结构,从而将加密后的第一业务数据导入数据库中,该加密后的第一业务数据可以用于数据的正常查询,提升数据查询的有效性。并且,可以实现针对不同来源的业务数据(比如来源于不同产品或不同业务的业务数据),配置不同的加密策略和加密对象,以满足不同业务场景的个性化的隐私保护需求。

本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。

附图说明

本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本公开实施例一所提供的数据处理方法的流程示意图;

图2为本公开实施例二所提供的数据处理方法的流程示意图;

图3为本公开实施例三所提供的数据处理方法的流程示意图;

图4为本公开实施例四所提供的数据处理方法的流程示意图;

图5为本公开实施例五所提供的数据处理方法的流程示意图;

图6为本公开实施例六所提供的数据处理方法的流程示意图;

图7为相关技术中的JSON数据的存储流程示意图;

图8为本公开实施例所提供的JSON数据的加密和存储流程示意图;

图9为本公开实施例所提供的业务层、服务层和Mapper层的方法示意图;

图10为本公开实施例所提供的加密流程示意图;

图11为本公开实施例所提供的根据产品配置调用加密策略的流程示意图;

图12为本公开实施例所提供的JSON数据的整体加密流程示意图;

图13为本公开实施例所提供的JSON数据的解密流程示意图;

图14为本公开实施例七所提供的数据处理装置的结构示意图;

图15示出了适于用来实现本公开实施方式的示例性电子设备的框图。

具体实施方式

下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。

目前,数据脱敏方式可按照不同的业务场景,自行定义和编写脱敏规则,比如无效化、随机值、数据替换、对称加密、平均值、偏移和取整等,可以针对数据库中的数据表中的某个字段,进行数据脱敏。

然而上述方式,至少存在以下问题:

1、对数据库中的某个字段进行脱敏的方式,无法适配JSON数据(即,对整个JSON数据进行加密后,加密后的JSON数据的数据格式不是JSON格式),而且这种对整个JSON数据进行加密的方式,不仅损失了JSON数据的结构(无法通过SQL语句进行数据查询),还浪费了大量的存储空间;

2、不同JSON数据的内容不同(比如包含的key不同),按照固定的加密规则进行加密的方式不可行;

3、加密规则变化或更换后无法兼容;

4、由于不同业务场景存储的JSON数据不同(比如,JSON数据中的键值对不同,如属性键key不同,且属性键key对应的属性值value也不同),只能在业务层实现数据的加解密,而业务层的方法数目过多,在业务层中自行加解密改造量较大。

针对上述存在的至少一个问题,本公开提出一种数据处理方法、装置、电子设备及存储介质。

Mapper(映射)层,又称为Dao层,对数据库进行数据持久化操作的类。

AOP(Aspect Oriented Programming,面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术),在运行时动态地将代码切入到类的指定方法、指定位置上的编程思想。

MySQL,一种关系型数据库管理系统。

下面参考附图描述本公开实施例的数据处理方法、装置、电子设备及存储介质。

图1为本公开实施例一所提供的数据处理方法的流程示意图。

本公开实施例以该数据处理方法被配置于数据处理装置中来举例说明,该数据处理装置可以应用于任一电子设备中,以使该电子设备可以执行数据处理功能。

其中,电子设备可以为任一具有计算能力的设备,例如可以为电脑、移动终端、服务器等,移动终端例如可以为车载设备、手机、平板电脑、个人数字助理、穿戴式设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。

如图1所示,该数据处理方法可以包括以下步骤:

步骤101,获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源。

在本公开实施例中,目标标识可以为产品标识,该产品标识用于标识第一业务数据所来源的目标产品,即第一业务数据来源于目标产品;其中,目标产品可以为任意一个产品(如APP(Application,应用)、服务等)。比如,产品标识可以为目标产品的产品编号、产品编码、产品ID(Identity,身份标识)等等。

在本公开实施例中,目标标识可以为业务标识,该业务标识用于标识第一业务数据所来源的目标业务(比如授信业务、贷款业务、借款业务等)。比如,业务标识可以为目标业务的业务编号、业务编码、业务ID等等。

在本公开实施例中,第一业务数据可以为结构化的业务数据,比如,第一业务数据的数据格式可以为JSON格式。

在本公开实施例中,数据导入请求可以为业务层发送的,该数据导入请求中携带第一业务数据和目标标识。

步骤102,根据目标标识,获取与目标标识关联的加密配置信息。

在本公开实施例中,加密配置信息可以包括加密策略(用于指示加密规则或加密算法,比如,加密策略可以为加密规则或加密算法的描述信息、自定义名称等)、加密对象(或称为加密路径、配置路径,用于指示待加密的数据字段,例如,当第一业务数据为结构化的业务数据时,加密对象可以用于指示第一业务数据中需要加密的属性键key)。

在本公开实施例中,可以根据该目标标识,获取与该目标标识关联的加密配置信息。

作为一种示例,以目标标识为产品标识进行示例,可以预先存储不同的产品标识与加密配置信息之间的对应关系,比如,可以将上述对应关系,写入产品配置中。从而本公开中,可以根据目标产品的产品标识,查询产品配置中的上述对应关系,以获取与目标产品的产品标识对应的加密配置信息,并作为与目标产品的产品标识关联的加密配置信息。

作为另一种示例,以目标标识为业务标识进行示例,可以预先存储不同的业务标识与加密配置信息之间的对应关系,比如,可以将上述对应关系,写入业务配置中。从而本公开中,可以根据目标业务的业务标识,查询业务配置中的上述对应关系,以获取与目标业务的业务品标识对应的加密配置信息,并作为与目标业务的业务标识关联的加密配置信息。

需要说明的是,当与目标标识对应的加密配置信息为多个的情况下,可以获取多个加密配置信息的版本信息,本公开中,根据多个加密配置信息的版本信息,从多个加密配置信息中选取一个加密配置信息,并作为与目标标识关联的加密配置信息。比如,可以将最新版本的加密配置信息,作为与目标标识关联的加密配置信息。

在本公开实施例的一种可能的实现方式中,在未获取到与目标标识关联的加密配置信息的情况下,表明该第一业务数据无需加密(如第一业务数据中未包含敏感信息或隐私信息),此时,可以将第一业务数据直接导入数据库。

例如,在产品配置中的上述对应关系中不存在目标产品的产品标识,或业务配置中的上述对应关系中不存在目标业务的业务标识的情况下,表明未存在与目标标识关联的加密配置信息,此时,表明该第一业务数据无需加密,因此,可以将第一业务数据直接导入数据库。

步骤103,在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据。

在本公开实施例中,在加密配置信息中包含加密策略和加密对象的情况下,可以从第一业务数据中,确定与加密对象匹配的数据字段,并根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据。

步骤104,将加密后的第一业务数据导入数据库。

在本公开实施例中,可以将加密后的第一业务数据导入数据库中。

本公开实施例的数据处理方法,通过获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源;获取与目标标识关联的加密配置信息;在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据;将加密后的第一业务数据导入数据库。由此,可以实现仅对第一业务数据中与需要加密的加密对象匹配的数据字段进行加密,不会破坏第一业务数据的数据格式或结构,从而将加密后的第一业务数据导入数据库中,该加密后的第一业务数据可以用于数据的正常查询,提升数据查询的有效性。并且,可以实现针对不同来源的业务数据(比如来源于不同产品或不同业务的业务数据),配置不同的加密策略和加密对象,以满足不同业务场景的个性化的隐私保护需求。

为了清楚说明本公开上述实施例中是如何对第一业务数据进行加密处理的,本公开还提出一种数据处理方法。

图2为本公开实施例二所提供的数据处理方法的流程示意图。

如图2所示,该数据处理方法可以包括以下步骤:

步骤201,获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源。

步骤201的解释说明可以参见本公开任一实施例中的相关描述,在此不做赘述。

在本公开实施例中,第一业务数据可以为结构化数据,比如,第一业务数据可以为JSON格式的业务数据。其中,第一业务数据中包括多个键值对,每个键值对包括一个属性键key以及与该key对应的属性值value。

步骤202,根据目标标识,获取与目标标识关联的加密配置信息。

步骤202的解释说明可以参见本公开任一实施例中的相关描述,在此不做赘述。

步骤203,从第一业务数据的各属性键中,确定是否存在与加密对象匹配的目标属性键,若是,则执行步骤204至206,若否,则执行步骤207。

在本公开实施例中,可以判断第一业务数据的各属性键中,是否存在与加密对象匹配的目标属性键,若是,则执行步骤204至206,若否,则执行步骤207。

需要说明的是,步骤204至206,与步骤207为并列的两种实现方式,实际应用时,仅需择一执行。

作为一种示例,以加密配置信息如下所示进行示例:

步骤204,获取与加密策略匹配的加密算法。

在本公开实施例中,在第一业务数据中存在目标属性键的情况下,获取与加密策略匹配的加密算法。

仍以上述例子进行示例,目标属性键包括“legalInfo”、“lepAddress”、“actConIdNo”、“actConName”、“actConMoblie”,当第一业务数据中的各属性键key中,存在“legalInfo”、“lepAddress”、“actConIdNo”、“actConName”、“actConMoblie”中的至少一项的情况下,表明该第一业务数据需要加密,此时,可以获取与加密策略匹配的加密算法。

作为一种示例,可以预先设定不同的加密策略与加密算法之间的映射关系,从而本公开中,可以根据加密配置信息中的加密策略,查询上述映射关系,以确定与加密配置信息中的加密策略匹配的加密算法。

步骤205,根据加密算法,对第一业务数据中的目标属性键的属性值进行加密处理,以得到加密后的第一业务数据。

在本公开实施例中,可以根据加密算法,对第一业务数据中的目标属性键对应的属性值进行加密处理,以得到加密后的第一业务数据。

举例而言,以目标属性键为“legalName”、“legalPhone”和“legalCertNo”进行示例,标记目标属性键所在的第一业务数据中的键值对为目标键值对,则加密后的第一业务数据中除目标键值对之外的其他键值对的数据内容保持不变,加密后的目标键值对的数据内容可以如下所示:

"legalName":"XXXXXXXX(密文)",

"legalPhone":"XXXXXXXX(密文)",

"legalCertNo":"XXXXXXXX(密文)"。

在本公开实施例的一种可能的实现方式中,结构化数据中的某个key对应的value可能包含至少一个子结构化数据,针对这种情况,本公开中,可以将Value中的各子结构化数据中的value进行加密处理。

即,本公开中,当目标属性键的属性值包括至少一个子结构化数据时,可以从第一业务数据中,确定各子结构化数据中的子属性键(本公开中记为目标子属性键),并根据加密算法,对各子结构化数据中目标子属性键的属性值进行加密处理,以得到加密后的第一业务数据。

作为一种示例,以目标属性键为“riskModelData”进行示例,加密后的目标键值对的数据内容可以如下所示:

"riskModelData":{

"class":"*****************(密文)",//"class"为目标子属性键,对其属性值进行加密处理

"status":""*****************(密文)",",//"status"为目标子属性键,对其属性值进行加密处理

"entType":""*****************(密文)",",//"entType"为目标子属性键,对其属性值进行加密处理

"modCompanyName":""****************(密文)*",",//"modCompanyName"为目标子属性键,对其属性值进行加密处理

"preCreditLimit":"*****************(密文)",,//"preCreditLimit"为目标子属性键,对其属性值进行加密处理

"coopYearTypeTactics":"*****************(密文)",//"coopYearTypeTactics"为目标子属性键,对其属性值进行加密处理

}

也就是说,本公开中,不仅可以对value进行全加密,如,以目标属性键为“riskModelData”进行示例,加密后的目标键值对的数据内容可以如下所示:

"riskModelData":***********************。

还可以对value中子结构的value加密,可以提升该方法的灵活性和适用性。

步骤206,将加密后的第一业务数据导入数据库。

在本公开实施例中,可以将加密后的第一业务数据导入数据库中。

步骤207,将第一业务数据导入数据库。

在本公开实施例中,在第一业务数据中未存在目标属性键的情况下,表明该第一业务数据中未存在敏感信息,此时,可以将该第一业务数据直接导入数据库。

本公开实施例的数据处理方法,可以实现在第一业务数据中包含需要加密的目标属性键的情况下,才对该第一业务数据中目标属性键的属性值进行加密处理,而在第一业务数据中未包含需要加密的目标属性键的情况下,表明该第一业务数据未存在敏感信息,此时,可以无需对该第一业务数据进行加密处理,在满足实际的数据隐私保护需求的基础上,降低数据的处理量。

为了清楚说明本公开任一实施例,本公开还提出一种数据处理方法。

图3为本公开实施例三所提供的数据处理方法的流程示意图。

如图3所示,该数据处理方法可以包括以下步骤:

步骤301,获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源。

步骤302,根据目标标识,获取与目标标识关联的加密配置信息。

步骤303,在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据。

步骤301至303的解释说明可以参见本公开任一实施例中的相关描述,在此不做赘述。

步骤304,将加密策略作为设定的第一属性键的属性值,以得到第一键值对。

在本公开实施例中,第一属性键为预先设定的属性键key,比如,第一属性键可以为“encryptStrategy(加密策略)”。

在本公开实施例中,可以将加密配置信息中具体的加密策略(比如GeneralJsonCryptoStrategy,常规JSON加密策略(自定义的加密算法的名称))作为设定的第一属性键的属性值,以得到第一键值对。

比如,第一键值对可以为:

"encryptStrategy":"GeneralJsonCryptoStrategy"。

步骤305,将第一键值对,插入加密后的第一业务数据,得到第二业务数据。

在本公开实施例中,可以将第一键值对,插入加密后的第一业务数据,得到第二业务数据。

作为一种示例,以目标属性键包括"legalName"、"legalPhone"、"legalCertNo"进行示例,第二业务数据例如可以包括:

步骤306,将第二业务数据导入数据库。

在本公开实施例中,可以将第二业务数据导入数据库。

本公开实施例的数据处理方法,通过将具体的加密策略写入加密后的业务数据中,从而加密设备在从数据库中查询到该加密后的业务数据后,可以根据加密后的业务数据中的加密策略,对加密后的业务数据进行正常解密,而对于非加密设备而言,由于其不知道加密策略对应的加密算法,将无法对加密后的业务数据进行解密,以提升业务数据的安全性。

上述为业务数据的加密方法所对应的各实施例,本公开还提出一种业务数据的解密方法。

图4为本公开实施例四所提供的数据处理方法的流程示意图。

如图4所示,在上述任一实施例的基础上,该数据处理方法还可以包括以下步骤:

步骤401,获取数据查询请求;其中,数据查询请求中携带数据标识或查询条件。

在本公开实施例中,数据标识可以为待查询的业务数据的数据标识,比如数据ID。

在本公开实施例中,查询条件用于指示待查询的业务数据,比如,查询条件可以用于指示查询哪个时段生成的业务数据,或者,用于指示查询何种业务对应的业务数据,或者,用于指示查询哪个字段的业务数据,等等,本公开对此并不做限制。

在本公开实施例中,数据查询请求可以为业务层发送的,该数据查询请求中携带上述数据标识或查询条件,比如,数据查询请求可以为SQL语句。

步骤402,从数据库中查询与数据标识或查询条件匹配的至少一条第三业务数据。

在本公开实施例中,可以从数据库中查询与该数据标识或查询条件匹配的至少一个业务数据,本公开中记为第三业务数据。

步骤403,针对任一第三业务数据,判断任一第三业务数据中是否存在设定的第一属性键,若是,则执行步骤404,若否,则执行步骤405。

在本公开实施例中,针对查询到的任意一个第三业务数据,可以判断该第三业务数据中是否存在设定的第一属性键(如encryptStrategy),若是,则执行步骤404,若否,则执行步骤405。

需要说明的是,步骤404和步骤405为并列的两种实现方式,实际应用时,仅需择一执行。

步骤404,根据任一第三业务数据中第一属性键的属性值,对任一第三业务数据进行解密处理,以得到解密后的任一第三业务数据。

在本公开实施例中,在上述第三业务数据中存在第一属性键的情况下,可以从该第三业务数据中提取第一属性键对应的属性值。由于该第一属性键对应的属性值指示了该第三业务数据对应的加密策略,因此,可以根据该第三业务数据中第一属性键的属性值,对该第三业务数据进行解密处理,以得到解密后的第三业务数据。

在本公开实施例的一种可能的实现方式中,第三业务数据的解密方式,例如为:从第三业务数据中,提取第一属性键对应的属性值,并获取与该第一属性键对应的属性值匹配的解密算法,从而可以根据该解密算法,对该第三业务数据进行解密处理,以得到解密后的第三业务数据。

步骤405,展示任一第三业务数据。

在本公开实施例中,在上述第三业务数据中未存在第一属性键的情况下,表明该第三业务数据为未加密的业务数据,此时,可以无需对第三业务数据进行解密,因此,可以直接展示该第三业务数据。

本公开实施例的数据处理方法,可以实现对加密后的业务数据进行解密处理,以提升数据查看的有效性。

为了清楚说明本公开任一实施例,本公开还提出一种数据处理方法。

图5为本公开实施例五所提供的数据处理方法的流程示意图。

如图5所示,该数据处理方法可以包括以下步骤:

步骤501,获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识。

其中,目标标识用于指示第一业务数据的来源。

步骤502,根据目标标识,获取与目标标识关联的加密配置信息。

步骤503,在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据。

步骤504,将加密策略作为设定的第一属性键的属性值,以得到第一键值对。

步骤505,将第一键值对,插入加密后的第一业务数据,得到第二业务数据。

步骤501至504的解释说明可以参见本公开任一实施例中的相关描述,在此不做赘述。

步骤506,将第一业务数据中与加密对象匹配的目标属性键,作为设定的第二属性键的属性值,以得到第二键值对。

在本公开实施例中,第二属性键为预先设定的属性键key,比如,第二属性键可以为“encryptPathList(加密路径列表)”。

在本公开实施例中,可以将第一业务数据中与加密对象匹配的目标属性键,作为第二属性键的属性值,以得到第二键值对。

比如,第二键值对可以为:

"encryptPathList":["$.originCustInfo.legalName"]。

其中,目标属性键为两个,分别为“originCustInfo”和“legalName”。

再比如,以目标属性键包括步骤305中"legalName"、"legalPhone"、"legalCertNo"进行示例,第二键值对可以为:

"encryptPathList":["$.legalName.legalPhone.legalCertNo"]。

步骤507,将第二键值对,插入第二业务数据,得到更新后的第二业务数据。

在本公开实施例中,可以将第二键值对,插入第二业务数据,以得到更新后的第二业务数据。

作为一种示例,第二键值对可以与第一键值对相邻,比如,可以将第二键值对插入第二业务数据中第一键值对之前,或者,可以将第二键值对插入第二业务数据中第一键值对之后,以得到更新后的第二业务数据。

以步骤305中的例子进行示例,更新后的第二业务数据可以包括:

步骤508,将更新后的第二业务数据导入数据库。

在本公开实施例中,可以将更新后的第二业务数据,导入数据库中。

本公开实施例的数据处理方法,通过将目标属性键单独写入加密后的业务数据中的第二属性键之后,从而加密设备在从数据库中查询到该加密后的业务数据后,可以根据第二属性键的属性值,确定该加密后的业务数据中哪个或哪些属性键的属性值被加密处理,从而可以仅对加密的部分属性键的属性值进行解密处理,可以提升业务数据的解密效率。

为了清楚说明上述实施例,本公开还提出一种数据处理方法。

图6为本公开实施例六所提供的数据处理方法的流程示意图。

如图6所示,在图4所示实施例的基础上,步骤404可以包括以下步骤:

步骤601,在任一第三业务数据中存在第一属性键的情况下,从任一第三业务数据中,获取第一属性键对应的属性值。

在本公开实施例中,针对任意一个第三业务数据,在该第三业务数据中存在第一属性键的情况下,可以从该第三业务数据中提取第一属性键对应的属性值。

步骤602,获取与第一属性键对应的属性值匹配的解密算法。

在本公开实施例中,由于第一属性键对应的属性值指示了该第三业务数据对应的加密策略,因此,可以根据第一属性键对应的属性值,确定加密策略对应的解密算法。

步骤603,从任一第三业务数据中获取第二属性键对应的目标属性值。

在本公开实施例中,可以从第三业务数据中,提取第二属性键对应的属性值(本公开中记为目标属性值)。

步骤604,从任一第三业务数据中,确定与目标属性值匹配的第三属性键。

在本公开实施例中,目标属性值用于指示第三业务数据中哪个或哪些属性键的属性值被加密处理,即,目标属性值用于指示第三业务数据中被加密的属性键。

在本公开实施例中,可以从第三业务数据中,确定与目标属性值匹配或一致的属性键(本公开中记为第三属性键)。

例如,当第三业务数据为加密后的第一业务数据时,第三属性键即为目标属性键。

步骤605,根据解密算法,对任一第三业务数据中第三属性键对应的属性值进行解密,以得到解密后的任一第三业务数据。

在本公开实施例中,可以根据解密算法,对第三业务数据中第三属性键对应的属性值进行解密处理,以得到解密后的第三业务数据。

本公开实施例的数据处理方法,可以实现对加密后的业务数据进行有效解密,以提升数据查看的有效性。

在本公开的任意一个实施例之中,以业务数据的数据格式为JSON格式,业务数据为JSON数据进行示例性说明,可以利用JSONPath技术(用于定位JSON数据中不同的key),对JSON数据中细粒度的某个key对应的value进行加密。并且,可以针对不同产品,配置不同的加密配置信息,实现对不同产品的业务数据进行针对性的加解密,其中,对于未配置加密路径的产品,对应的业务数据可以无需加密。在对业务数据进行加密后,可以将加密策略设置到JSON数据中,每次解密时,直接取出JSON数据中的加密策略进行解密,其中,若JSON数据中未包含加密策略,则不对JSON数据进行解密。可以在Mapper层统一进行JSON数据的加解密处理,使用AOP模式适配易处理的业务场景,使用包装类模式处理不易处理的业务场景。

例如,在数据导入请求中携带产品标识(如产品编码)的情况下,可以使用AOP模式,去产品配置中获取加密配置信息,并基于加密配置信息,对数据导入请求中的第一业务数据进行加密处理,而在数据导入请求中未携带产品标识的情况下,可以使用包装类模式,根据数据导入请求中的其他信息(比如业务标识(如业务编码))去业务配置中获取加密配置信息,并基于加密配置信息,对数据导入请求中的第一业务数据进行加密处理。

作为一种示例,相关技术中的JSON数据的存储流程可以如图7所示,在业务层(ApplyBiz)导入JSON数据(或客户信息)后,调用服务(Service)层(即图7中的ApplyService)方法导入JSON数据,然后利用Mapper层(即图7中的ApplyMapper)进行JSON数据的落库操作。

而本申请中,可以调用AOP或者包装类(或装饰器)两种模式,对JSON数据进行自动加密,并将加密后的JSON数据导入数据库(如MySQL数据库)。例如,JSON数据的加密流程可以如图8所示。

图8中,Encrypt是加密,Add是增加,insert是插入,Aks是加密工具,productCode是产品编码,extData是敏感数据(即第一业务数据)、encryptKey是需要加密的key。

具体地,可以在图7的基础上,在Mapper层进行JSON数据的落库操作之前,利用AOP或装饰器模式实现JSON数据的加密。

需要说明的是,本公开之所以选择在Mapper层统一进行加密处理的原因是:由于不同产品存放扩展数据不同,比如,不同产品的JSON数据中的key不同,各业务线只能在业务层实现自身业务的加解密,由于业务层的方法数目过多,各产品线自行加解密的方式,改造量较大。例如,业务层、服务层和Mapper层的方法可以如图9所示,其中,业务层的方法数目较多,而Mapper层只有一个方法。

此外,由于Mapper层中所有的方法均需加解密处理,而Mapper层中的入参和出参不统一(List、实体类、String、Map)、不同的Mapper层中的实体类也不同,且参数中实体类需要加密的字典名称和数目也不同,因此,均需个性化处理,本公开中,可以选择使用AOP和包装类两种模式进行JSON数据的加密处理。其中,AOP模式利用注解标记Mapper层和实体类的相应字段,处理常用统一的切入;包装类模式处理个性化较难处理的情况。

一种示例,AOP或包装类两种模式的加密流程可以如图10所示,Mapper层的装饰器(ApplyMapperCryptoDecorator)或AOP调用加密中介类(JsonCryptoMediator),根据产品标识(如产品编码,productCode),去产品配置(ProductConfig)中读取加密配置信息,然后根据加密配置信息中的加密策略(例如GeneralJsonCryptoStrategy)对JSON数据中部分key对应的value进行加密处理,最终返回加密后的JSON数据,并导入MySQL数据库。

加密的耗时分析:读取产品配置(调用一次Redis(Remote Dictionary Server,远程字典服务)查询最新版本的加密配置信息);

数据量分析:MySQL JSON字段大小限制:最大4GB,可以满足应用需求;

加密算法数据的大小无限制:加密后字符数大于9984,转离线加密;

加密中介类(JsonCryptoMediator):读取产品配置后调用不同的加密策略(解密策略)。作为一种示例,加密中介类根据产品配置,调用加密策略的流程可以如图11所示。

需要说明的是,加密策略(解密策略)可以根据实际应用需求进行扩展,比如,可以通过实现加密策略(JsonCryptoStrategy)接口扩展不同的加密策略。

作为一种示例,JSON数据的整体加密流程可以如图12所示,即图12是图8和图10的结合。

在从MySQL数据库中查询到某个JSON数据时,该JSON数据的解密流程可以如图13所示。如图13所示,可以从JSON数据中提取加密策略,并根据加密策略对JSON数据进行解密。需要说明的是,当JSON数据中没有加密策略时,表明该JSON数据未加密,可以直接返回该JSON数据。

图13中,Select是选择,applyNo是指查询条件,decrypt是解密,encryptkey是需要解密的key(可以从JSON数据中提取,即第三属性键)。

解密的耗时分析:1.利用批量接口调用AKS解密;2.AKS处的解密耗时;

数据量分析:加解密算法数据大小无限制:加密的字符数大于9984,转离线解密。

综上,可以实现通过切面和配置的方式,对JSON数据中的部分key对应的value进行加密;可以实现在Mapper层通过AOP或包装类模式,根据不同产品配置中的加密路径(或配置路径、加密对象),实现对JSON数据中的部分key对应的value进行细粒度地加解密;在对JSON数据进行加密时,可以将加密规则(即加密策略)设置到JSON数据中,每次解密时,直接提取JSON数据中的加密策略进行解密,若JSON数据中不包含加密策略,则不对其进行解密,从而实现对加密规则(或加密策略)变化或更换进行兼容。

与上述图1至图6实施例提供的数据处理方法相对应,本公开还提供一种数据处理装置,由于本公开实施例提供的数据处理装置与上述图1至图6实施例提供的数据处理方法相对应,因此在数据处理方法的实施方式也适用于本公开实施例提供的数据处理装置,在本公开实施例中不再详细描述。

图14为本公开实施例七所提供的数据处理装置的结构示意图。

如图14所示,该数据处理装置1400可以包括:第一获取模块1401、第二获取模块1402、加密模块1403以及导入模块1404。

其中,第一获取模块1401,用于获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,其中,目标标识用于指示第一业务数据的来源。

第二获取模块1402,用于根据目标标识,获取与目标标识关联的加密配置信息。

加密模块1403,用于在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据。

导入模块1404,用于将加密后的第一业务数据导入数据库。

在本公开实施例的一种可能的实现方式中,第一业务数据为结构化数据,第一业务数据包括多个属性键和各属性键对应的属性值;加密模块1403,用于:从第一业务数据的各属性键中,确定是否存在与加密对象匹配的目标属性键;在第一业务数据中存在目标属性键的情况下,获取与加密策略匹配的加密算法;根据加密算法,对第一业务数据中的目标属性键的属性值进行加密处理,以得到加密后的第一业务数据。

在本公开实施例的一种可能的实现方式中,当目标属性键的属性值包括至少一个子结构化数据时,加密模块1403,用于:从第一业务数据中,确定各子结构化数据中的目标子属性键;根据加密算法,对各子结构化数据中目标子属性键的属性值进行加密处理,以得到加密后的第一业务数据。

在本公开实施例的一种可能的实现方式中,导入模块1404,还用于:在第一业务数据中未存在目标属性键的情况下,将第一业务数据导入数据库;或者,在未获取到与目标标识关联的加密配置信息的情况下,将第一业务数据导入数据库。

在本公开实施例的一种可能的实现方式中,导入模块1404,用于:将加密策略作为设定的第一属性键的属性值,以得到第一键值对;将第一键值对,插入加密后的第一业务数据,得到第二业务数据;将第二业务数据导入数据库。

在本公开实施例的一种可能的实现方式中,该数据处理装置1400还可以包括:

第三获取模块,用于获取数据查询请求;其中,数据查询请求中携带数据标识或查询条件。

查询模块,用于从数据库中查询与数据标识或查询条件匹配的至少一条第三业务数据。

判断模块,用于针对任一第三业务数据,判断任一第三业务数据中是否存在第一属性键。

解密模块,用于在任一第三业务数据中存在第一属性键的情况下,根据任一第三业务数据中第一属性键的属性值,对任一第三业务数据进行解密处理,以得到解密后的任一第三业务数据。

在本公开实施例的一种可能的实现方式中,该数据处理装置1400还可以包括:

展示模块,用于在任一第三业务数据中不存在第一属性键的情况下,展示任一第三业务数据。

在本公开实施例的一种可能的实现方式中,解密模块,用于:在任一第三业务数据中存在第一属性键的情况下,从任一第三业务数据中,获取第一属性键对应的属性值;获取与第一属性键对应的属性值匹配的解密算法;根据解密算法对任一第三业务数据进行解密处理,以得到解密后的任一第三业务数据。

在本公开实施例的一种可能的实现方式中,导入模块1404,用于:将第一业务数据中与加密对象匹配的目标属性键,作为设定的第二属性键的属性值,以得到第二键值对;将第二键值对,插入第二业务数据,得到更新后的第二业务数据;将更新后的第二业务数据导入数据库。

在本公开实施例的一种可能的实现方式中,解密模块,用于:从任一第三业务数据中获取第二属性键对应的目标属性值;从任一第三业务数据中,确定与目标属性值匹配的第三属性键;根据解密算法,对任一第三业务数据中第三属性键对应的属性值进行解密处理,以得到解密后的任一第三业务数据。

在本公开实施例的一种可能的实现方式中,第二获取模块,用于:根据目标标识,获取与目标标识对应的至少一个加密配置信息;获取各加密配置信息的版本信息;根据各加密配置信息的版本信息,从各加密配置信息中确定与目标标识关联的加密配置信息。

本公开实施例的数据处理装置,通过获取数据导入请求,其中,数据导入请求中携带第一业务数据和目标标识,目标标识用于指示第一业务数据的来源;获取与目标标识关联的加密配置信息;在加密配置信息中包括加密策略和加密对象的情况下,根据加密策略,对第一业务数据中与加密对象匹配的数据字段进行加密处理,以得到加密后的第一业务数据;将加密后的第一业务数据导入数据库。由此,可以实现仅对第一业务数据中与需要加密的加密对象匹配的数据字段进行加密,不会破坏第一业务数据的数据格式或结构,从而将加密后的第一业务数据导入数据库中,该加密后的第一业务数据可以用于数据的正常查询,提升数据查询的有效性。并且,可以实现针对不同来源的业务数据(比如来源于不同产品或不同业务的业务数据),配置不同的加密策略和加密对象,以满足不同业务场景的个性化的隐私保护需求。

为了实现上述实施例,本公开还提出一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本公开前述任一实施例提出的数据处理方法。

为了实现上述实施例,本公开还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开前述任一实施例提出的数据处理方法。

为了实现上述实施例,本公开还提出一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如本公开前述任一实施例提出的数据处理方法。

图15示出了适于用来实现本公开实施方式的示例性电子设备的框图。图15显示的电子设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图15所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图15未显示,通常称为“硬盘驱动器”)。尽管图15中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。

电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图15所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 基于集群计算的数据批处理方法、装置、电子设备及介质
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 路由数据处理方法、装置、电子设备及存储介质
  • 医疗数据处理方法及装置、浏览器端、介质和电子设备
  • 数据处理方法及装置、电子设备、存储介质
  • 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
  • 数据处理方法、功耗数据处理方法、存储介质和电子设备
技术分类

06120116479902