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

技术领域

本说明书实施例涉及计算机技术领域,特别涉及数据处理方法。

背景技术

随着新兴技术快速发展、应用场景迅速扩展、安全形势不断变化,在数据成为企业发展关键因素的同时,数据作为企业核心资产,也面临着安全挑战。当企业与第三方进行数据共享与合作时,存在需要将明文数据提供给第三方的场景,当明文数据流转到第三方后,企业难以再对数据泄露和滥用等进行管控。由于存在各种因素可能导致数据泄露,这个时候企业就需要具有依据泄漏数据进行溯源定位到第三方的能力,同时完成自证,避免对企业品牌、声誉等造成影响。

发明内容

有鉴于此,本说明书实施例提供了两种数据处理方法。本说明书一个或者多个实施例同时涉及两种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:

将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定第一分组数量;

根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,并根据所述二进制数组中的二进制数顺序,确定所述第一类型分组对应的分组二进制数;

根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据;

将所述第一水印数据发送至所述数据接收方。

根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:

第一数据转换模块,被配置为将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定第一分组数量;

第一数据分组模块,被配置为根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,并根据所述二进制数组中的二进制数顺序,确定所述第一类型分组对应的分组二进制数;

第一水印添加模块,被配置为根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据;

第一数据发送模块,被配置为将所述第一水印数据发送至所述数据接收方。

根据本说明书实施例的第三方面,提供了一种数据处理方法,包括:

将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定分组数量;

根据所述分组数量对所述目标数据进行分组,获得目标分组以及所述目标分组的分组编号;

根据所述二进制数组中的二进制数、以及所述目标分组的分组编号,对所述目标数据进行水印添加,生成目标水印数据;

将所述目标水印数据发送至所述数据接收方。

根据本说明书实施例的第四方面,提供了一种数据处理装置,包括:

第二数据转换模块,被配置为将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定分组数量;

第二数据分组模块,被配置为根据所述分组数量对所述目标数据进行分组,获得目标分组以及所述目标分组的分组编号;

第二水印添加模块,被配置为根据所述二进制数组中的二进制数、以及所述目标分组的分组编号,对所述目标数据进行水印添加,生成目标水印数据;

第二数据发送模块,被配置为将所述目标水印数据发送至所述数据接收方。

根据本说明书实施例的第五方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。

根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据处理方法的步骤。

根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。

本说明书一个实施例实现了一种数据处理方法,包括将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定第一分组数量;根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,并根据所述二进制数组中的二进制数顺序,确定所述第一类型分组对应的分组二进制数;根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据;将所述第一水印数据发送至所述数据接收方。

具体的,该数据处理方法在确定需要发送数据接收方的目标数据后,通过不可见字符(即空白字符,如换行符、回车符、空格等)的水印嵌入方案,根据第一类型分组对应的分组二进制数、预设空白字符,在目标数据中所有可嵌入不可见字符的地方,完成不可见字符嵌入,不受限于长段文本格式,也不需要添加过多的伪数据,可以使用有限空间中尽量多的嵌入水印信息,实现对目标数据的水印添加,使得该目标数据具有较好的抗攻击性;那么当发送至数据接收方的该第一水印数据出现数据泄露时,企业就可以基于该泄露数据中添加的水印,准确的溯源定位到该数据接收方。

附图说明

图1是本说明书一个实施例提供的一种数据处理方法的具体场景示意图;

图2是本说明书一个实施例提供的一种数据处理方法的流程图;

图3是本说明书一个实施例提供的另一种数据处理方法的方法流程图;

图4是本说明书一个实施例提供的另一种数据处理方法中根据分组顺序在数据中进行水印添加以及水印提取的具体处理流程示意图;

图5是本说明书一个实施例提供的一种数据处理装置的结构示意图;

图6是本说明书一个实施例提供的另一种数据处理装置的结构示意图;

图7是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

数据水印:包含明水印、暗水印两类,数据水印在不影响数据功能的情况下,通过对原始数据添加伪行、伪列、对原始数据植入标记等方式进行水印技术处理,实现在原始数据中水印信息的嵌入,当发生数据泄露时,通过提取数据中嵌入的水印信息,可以达到溯源自证的目的。

溯源自证:当企业将明文数据提供给第三方时,企业不再具有对数据泄露和滥用的管控和审计能力,当第三方发生数据泄露时,溯源是指通过技术手段确认是某个第三方泄露的数据,而非企业方,从而实现企业的清白自证。

基于上述问题,数据水印就是一个解决方案,在共享数据给第三方之前,对数据进行水印信息添加。若数据发生泄露,能够根据泄露数据的水印进行溯源定位。数据水印包含明水印和暗水印两类。明水印表示对数据行为标记,从而实现泄漏数据的追溯。常用方法是在原始数据中添加伪行、伪列、对原始数据加入标记等方法。而暗水印无需加行、加列,不需要添加脏数据,只需要对适当数据字段进行算法映射即可。但是现有的数据水印添加方法在数据中添加的水印的抗攻击性均较差。

基于此,在本说明书中,提供了两种数据处理方法。本说明书一个或者多个实施例同时涉及两种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。

参见图1,图1示出了根据本说明书一个实施例提供的一种数据处理方法的具体场景示意图。

图1中包括数据发送方102以及数据接收方104,其中,数据发送方102可以理解为上述的企业,数据接收方104可以理解为上述的第三方。

实际应用中,数据发送方102在将目标数据发送至数据接收方104,实现与数据接收方104进行数据共享之前,会为该目标数据添加水印信息,以保证在该目标数据发生数据泄露的情况下,可以通过该目标数据中添加的水印信息,溯源到数据发送方102,完成清白自证,同时,对数据接收方104起到使用安全提醒作用,保证目标数据的后续使用安全性。

具体实现方式如下所述:

数据发送方102在将目标数据发送至数据接收方104之前,会首先确认为数据接收方104设置的唯一用户编号(即数据接收方104的用户编号),将该用户编号转换为二进制数组;然后根据该二进制数组的长度以及该二进制数组中的二进制数,结合预设的不可见字符(如换行符、回车符、空格等),在目标数据中进行水印添加,生成带有水印的目标数据。最后,数据发送方102将带有水印的目标数据发送至数据接收方104;后续该目标数据发生泄漏,则可以通过对该目标数据中水印的提取,还原该用户编号,以此追溯到数据接收方104,完成清白自证等。

参见图2,图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。

步骤202:将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定第一分组数量。

具体的,该数据处理方法应用于数据发送方,其中,目标数据可以理解为待向数据接收方发送的数据,如目标数据可以为任意格式的文档、表格等;数据接收方可以理解为任意需要使用目标数据的企业;数据接收方的用户编号则可以理解为数据发送方为每个数据接收方配置的、唯一的十进制编号,或者是字符编号等。

那么,当数据接收方的用户编号为十进制编号的情况下,则可以直接将该十进制编号转换为二进制数组,例如数据接收方的用户编号为8,则可以将该数据接收方的用户编号5,转换为二进制数组:101;而在数据接收方的用户编号为字符编号或者其他类型编号的情况下,则需要先将该数据接收方的用户编号转换为数值类型的字符,再将数据类型的字符转换为对应的二进制数组。

为了便于理解,以下实施例中均以数据接收方的用户编号为十进制为例进行介绍。

仍以上述为例,在二进制数组为101的情况下,该二进制数组的长度为3,则可以确定第一分组数量为3,即后续在将目标数据进行分组时,可以将其分为3组。

步骤204:根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,并根据所述二进制数组中的二进制数顺序,确定所述第一类型分组对应的分组二进制数。

仍以上述为例,在第一分组数量为3的情况下,根据第一分组数量对目标数据进行分组,则可以把目标数据分为3个第一类型分组,如第一类型分组1、第一类型分组2、第一类型分组3。

具体的,根据第一分组数量对目标数据进行分组,获得第一类型分组包括至少两种分组情况,第一种是当目标数据中存在主键、且主键为数值类型的情况下,则可以根据该数值类型的主键,实现对目标数据进行分组;第二种是当目标数据中存在主键,但是主键为文本类型的情况下,则需要将主键转换为数值类型,再根据数值类型的主键,实现对目标数据进行分组。以下对两种目标数据的具体分组方式进行详细说明。

第一种,当目标数据中存在主键、且主键为数值类型的情况下,则可以根据该数值类型的主键,实现对目标数据进行分组的具体实现方式如下所述:

所述根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,包括:

在确定所述目标数据存在主键、且所述主键为数值类型的情况下,根据所述第一分组数量、所述主键、预设哈希算法,确定所述目标数据的分组编号;

根据所述目标数据的分组编号对所述目标数据进行分组,获得第一类型分组。

其中,预设哈希算法可以根据实际应用进行设置,本说明书实施例对此不作任何限定。并且,在目标数据的分组编号计算时,预设哈希算法可以包括一种哈希算法或者两种哈希算法。

例如,目标数据如下表1所述:

若该目标数据中,证件号为主键,那么则可以确定该目标数据中存在主键,且主键为数值类型,此时,则可以根据第一分组数、主键、预设哈希算法,计算该目标数据中每一行的分组编号,具体计算公式如下所述:

t=H((K||H(K||t

其中,t表示每一行的分组编号,H表示预设哈希算法,K表示密钥,t

通过上述计算公式,即可计算出上述目标数据的表格中,每一行对应的分组编号,例如第二行对应的分组编号为1,第三行对应的分组编号为2,第四行对应的分组编号为3。

最后,根据目标数据的分组编号对目标数据进行分组,获得第一类型分组,即可以理解为,根据目标数据的第二行对应的分组编号1,第三行对应的分组编号2,第四行对应的分组编号3,将第二行分为第一类型分组,如第一类型分组1,将第三行分为另一第一类型分组,如第一类型分组2,将第四行分为再一第一类型分组,如第一类型分组3。

此外,在对目标数据进行分组的过程中,为了给分组提供安全性和随机性,使得后续添加至目标数据的水印尽量散开,则可以使用上述计算公式中的双哈希定位算法,对目标数据进行分组。当前,实际应用中,也可以使用单哈希定位算法,实现对目标数据进行分组。

本说明书实施例提供的数据处理方法,在确定目标数据存在主键且主键为数值类型的情况下,可以直接根据第一分组数量、主键、预设哈希算法,计算目标数据中每一行数据对应的分组编号,后续即可根据该分组编号快速的对目标数据分组。

第二种,当目标数据中存在主键、但是主键为文本类型的情况下,则需要将主键转换为数值类型,再根据数值型的主键,实现对目标数据进行分组。其具体实现方式如下所述:

所述根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,包括:

在确定所述目标数据存在主键、且所述主键为文本类型的情况下,将所述主键转换为数值类型;

根据所述第一分组数量、所述主键、预设哈希算法,确定所述目标数据的分组编号;

根据所述目标数据的分组编号对所述目标数据进行分组,获得第一类型分组。

具体的,与第一种对目标数据进行分组的方法不同的是,在主键为文本类型的情况下,则需要确定主键对应的字符编号,例如主键为:姓名,文本字典中姓对应的字符编号为1,名对应的字符编号为9,那么该主键对应的字符编号则为19。具体实现方式如下所述:

所述将所述主键从文本类型的数据转换为数值类型的数据,包括:

根据预设文本字典确定所述主键对应的字符编号,通过所述字符编号替代所述主键,以将所述主键从文本类型的数据转换为数值类型的数据。

最后,即可通过该数值类型的该主键对应的字符编号,再根据如下计算公式计算目标数据的分组编号:

t=H((K||H(K||A)))modL

其中,t表示每一行的分组编号,H表示预设哈希算法,K表示密钥,A表示主键对应的字符编号。

通过上述计算公式,即可计算出上述目标数据的表格中,每一行对应的分组编号,例如第二行对应的分组编号为1,第三行对应的分组编号为2,第四行对应的分组编号为3。

最后,根据目标数据的分组编号对目标数据进行分组,获得第一类型分组,即可以理解为,根据目标数据的第二行对应的分组编号1,第三行对应的分组编号2,第四行对应的分组编号3,将第二行分为第一类型分组,如第一类型分组1,将第三行分为另一第一类型分组,如第一类型分组2,将第四行分为再一第一类型分组,如第一类型分组3。

与上述实施例相同,在对目标数据进行分组的过程中,为了给分组提供安全性和随机性,使得后续添加至目标数据的水印尽量散开,则可以使用上述计算公式中的双哈希定位算法,对目标数据进行分组。当前,实际应用中,也可以使用单哈希定位算法,实现对目标数据进行分组。

本说明书实施例提供的数据处理方法,在确定目标数据存在主键,但是主键为文本类型的情况下,需要获取文本类型的主键对应的字符编码,然后根据数值类型的字符编码、第一分组数量、预设哈希算法,计算目标数据中每一行数据对应的分组编号,后续即可根据该分组编号快速的对目标数据分组。

另外一种可实现方式中,当目标数据中的存在非数值类型的主键,或者目标数据中不存在主键,但是目标数据中存在数值类型的列的情况下,也可以将该数值类型的列作为主键,实现对目标数据分组;当然,若目标数据中不存在主键,且目标数据中所有的数据均为文本类型的情况下,则可以选择其中一个文本列,使用该文本列对应的字符编号实现对目标数据进行分组。具体的分组计算过程可以参见上述实施例,在此不再赘述。

此外,在根据第一分组数量对目标数据进行分组,获得第一类型分组会后,则可以根据该二进制数组中的二进制数顺序,确定每个第一类型分组对应的分组二进制数。

例如,第一类型分组包括:第一类型分组1、第一类型分组2、第一类型分组3;该二进制数值中的二进制数顺序为101;那么,根据该二进制数组中的二进制数顺序,确定每个第一类型分组对应的分组二进制数则可以理解为,第一类型分组1对应的分组二进制数则为1、第一类型分组2对应的分组二进制数则为0、第一类型分组3对应的分组二进制数则为1。

步骤206:根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据。

其中,预设空白字符包括但不限于换行符、回车符、空格等。

具体的,在确定每个第一类型分组,以及每个第一类型分组对应的二进制数之后,则可以根据第一类型分组对应的分组二进制数、以及预设空白字符,对第一类型分组的目标数据进行水印添加,生成第一水印数据。具体实现方式如下所述:

所述根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据,包括:

在确定所述第一类型分组对应的分组二进制数为1的情况下,将预设空白字符添加至所述第一类型分组的目标数据中,以及在确定所述第一类型分组对应的分组二进制数为0的情况下,不在所述第一类型分组的目标数据中添加所述预设空白字符,生成第一水印数据。

沿用上例,第一类型分组1对应的分组二进制数为1、第一类型分组2对应的分组二进制数为0、第一类型分组3对应的分组二进制数为1。

若预设空白字符为空格;那么,在确定第一类型分组1以及第一类型分组3对应的分组二进制数为1的情况下,则在该第一类型分组1的每一行目标数据以及第一类型分组3的每一行目标数据中,以添加空格的方式对其进行水印添加;而在确定第一类型分组2对应的分组二进制数为0的情况下,则不在该第一类型分组2的每一行目标数据中,添加空格。通过此种方式完成对目标数据中进行水印添加,生成第一水印数据(即添加了水印的目标数据)。

本说明书实施例中,使用预设空白字符,如换行符、回车符、空格等在目标数据中实现水印添加,水印嵌入后,不会改变文本类型或者其他类型的目标数据的原始含义,不会导致均值、方差等值的改变,因此具有较好的不可见性,可以避免添加了水印的目标数据对数据接收方造成的视觉困扰,极大的提升了水印添加效果。

另外,为了进一步的提升水印效果的破解难度以及安全性,在目标数据中添加水印时,可以通过不同的预设空白字符进行水印添加,例如预设空白字符可以设置为三种:回车符、换行符以及空格,在对目标数据进行水印添加时,则可以在不同的行添加不同的水印信息。具体实现方式如下所述:

所述根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据,包括:

根据所述第一分组数量以及所述目标数据的分组编号,利用预设哈希值计算方法,确定所述第一类型分组的目标数据对应的哈希值;

根据所述第一类型分组对应的分组二进制数、所述哈希值对应的预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据。

仍以上述为例,若第一分组数量为3,目标数据的分组编号为1,则可以利用预设哈希值计算方法,计算每个第一类型分组的目标数据对应的哈希值,例如预设哈希值计算方法如下所述:

k=tmod 3

其中,与上述公式一样,t表示目标数据中每一行目标数据对应的分组编号,3则为二进制数组的长度。

例如,当K=0时,则预设空白字符表示回车符,K=1时,则预设空白字符表示换行符,当K=2时,则预设空白字符表示空格。

具体的,先根据第一分组数量以及目标数据对应的分组编号,利用哈希值计算方法,计算每一个第一类型分组的目标数据对应的哈希值,然后根据第一类型对应的分组二进制数,每个哈希值对应的预设空白字符,对第一类型分组的目标数据进行水印添加,生成第一水印数据。具体实现方式如下所述:

所述根据所述第一类型分组对应的分组二进制数、所述哈希值对应的预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据,包括:

在确定所述第一类型分组对应的分组二进制数为1的情况下,将所述哈希值对应的预设空白字符添加至所述第一类型分组的目标数据中,以及在确定所述第一类型分组对应的分组二进制数为0的情况下,不在所述第一类型分组的目标数据中添加所述哈希值对应的预设空白字符,生成第一水印数据。

仍沿用上例,第一类型分组1对应的分组二进制数为1、第一类型分组2对应的分组二进制数为0、第一类型分组3对应的分组二进制数为1。

那么,在确定第一类型分组1对应的分组二进制数为1的情况下,确定该第一类型分组1的目标数据对应的哈希值是什么,若该哈希值为0,则将该哈希值0对应的预设空白字符:回车符添加至第一类型分组的每一行目标数据中,若该哈希值为1,则将该哈希值1对应的预设空白字符:换行符添加至第一类型分组的每一行目标数据中,若该哈希值为2,则将该哈希值2对应的预设空白字符:空格添加至第一类型分组的每一行目标数据中。同理,第一类型分组3的目标数据的水印添加方式,可以参见第一类型分组1的目标数据的水印添加方式,而对于第一类型分组2,由于其对应的分组二进制数为0,因此可以不用进行水印添加。以此通过此种方式完成目标数据中的水印添加,生成第一水印数据。

本说明书实施例提供的数据处理方法,根据不同的哈希值在目标数据中嵌入不同的不可见字符(预设空白字符),完成对目标数据的水印添加,使得生成的第一水印数据的水印效果的破解难度以及安全性得到了极大的提升。

步骤208:将所述第一水印数据发送至所述数据接收方。

具体的,在对目标数据进行水印添加,生成第一水印数据之后,则可以将该第一水印数据发送至数据接收方,与数据接收方进行第一水印数据共享。

本说明书实施例提供的该数据处理方法,在确定需要发送数据接收方的目标数据后,通过不可见字符(即空白字符,如换行符、回车符、空格等)的水印嵌入方案,根据第一类型分组对应的分组二进制数、预设空白字符,在目标数据中所有可嵌入不可见字符的地方,完成不可见字符嵌入,不受限于长段文本格式,也不需要添加过多的伪数据,可以使用有限空间中尽量多的嵌入水印信息,实现对目标数据的水印添加,使得该目标数据具有较好的抗攻击性;那么当发送至数据接收方的该第一水印数据出现数据泄露时,企业就可以基于该泄露数据中添加的水印,准确的溯源定位到该数据接收方。

而在需要根据水印对目标数据进行第三方追溯,即根据水印追溯到使用该目标数据的数据接收方的情况下,在获得第一水印数据之后,则需要对第一水印数据中的水印进行提取,还原为数据接收方的用户编号,以实现对数据接收方的追溯。具体实现方式如下所述:

所述将所述第一水印数据发送至所述数据接收方之后,还包括:

获取所述第一水印数据,并通过预设函数删除所述第一水印数据中的预设空白字符,获得验证数据;

根据所述第一分组数量对所述验证数据进行分组,获得第二类型分组;

根据所述第二类型分组中验证数据对应的预设空白字符,生成验证水印,并根据所述验证水印确定所述数据接收方。

其中,预设函数可以理解为strip()函数,由于数据发送方对所有发出的目标数据的水印添加均是以不可见字符实现的,因此在进行水印提取时,为了避免影响水印提取效果,则可以先通过该预设函数将第一水印数据中的不可见字符去掉。

具体的,获取第一水印数据,即添加水印的目标数据,首先通过预设函数删除第一水印数据中的预设空白字符,获得验证数据;然后根据第一分组数量对验证数据进行分组,获得第二类型分组,其中,根据该第一分组数量对验证数据进行分组,获得第二类型分组的具体实现步骤,可以参见上述实施例中,根据第一分组数量对目标数据进行分组,获得第一类型分组的具体实现过程,在此不再赘述。

然后,根据第二类型分组中验证数据对应的预设空白字符,生成验证水印。具体的,该根据第二类型分组中验证数据对应的预设空白字符,生成验证水印的具体实现方式如下所述:

在根据第二类型分组中验证数据对应存在预设空白字符的情况下,记录水印信息为1,在第二类型分组中验证数据对应不存在预设空白字符的情况下,记录水印信息为0;

根据所述第二类型分组对应的水印信息,生成验证水印。

例如第二类型分组包括:第二类型分组1、第二类型分组2、第二类型分组3;分别确定第二类型分组1中验证数据对应预设空白字符,第二类型分组2中验证数据对应预设空白字符,第二类型分组3中验证数据对应预设空白字符。

举例说明,若该第二类型分组1中包括10行验证数据,且这10行验证数据均对应有预设空白字符,则可以将第二类型分组1中这10行验证数据对应的水印信息记录为【1、1、1、1、1、1、1、1、1、1】,即10个1,再根据取多原则,可以确定该第二类型分组1对应的水印信息为1;若该第二类型分组2中包括5行验证数据,且这5行验证数据有的行对应有预设空白字符,有的则没有对应的预设空白字符,若该第二类型分组2中这5行验证数据对应的水印信息记录为【1、0、0、0、1】的情况下,再根据取多原则,可以确定该第二类型分组2对应的水印信息为0;同理,若第二类型分组3对应的水印信息为1的情况下,则可以确定该第一水印数据对应的验证水印为101,然后将该二进制数101转换为十进制5;最后根据该十进制数与所有数据接收方的用户编号进行匹配,即可快速且准确的确定该第一水印数据的数据接收方,完成第一水印数据溯源。

上述实施例中介绍的为第一水印数据中存在数值型主键的情况下,完成水印提取的实现方式;而在第一水印数据为全文本类型的数据的情况下,完成水印提取的具体实现方式如下所述:

在确定所述第一水印数据存在主键、且该主键为文本类型的情况下,根据所述预设文本字典确定该主键对应的字符编号,通过该字符编号替代该主键,以将该主键从文本类型的数据转换为数值类型的数据;

然后根据第一分组数量、主键、预设哈希算法,确定该第一水印数据的分组编号;

根据该第一水印数据的分组编号对该第一水印数据进行分组,获得第二类型分组。

那么,该根据第二类型分组中验证数据对应的预设空白字符,生成验证水印的具体实现方式如下所述:

确定第二类型分组中验证数据的主键对应的字符编号;

在根据第二类型分组中验证数据对应存在预设空白字符、且该预设空白字符对应的字符编号与主键对应的字符编号匹配的情况下,记录水印信息为1,反之,记录水印信息为0;

根据所述第二类型分组对应的水印信息,生成验证水印。

例如,第二类型分组1、第二类型分组2、第二类型分组3,再将每个第二类型分组中的每行验证数据的主键对应的字符编号,与该行验证数据对应的预设空白字符对应的字符编号进行匹配,当匹配时,记录水印信息为“1”,否则记录水印信息为“0”。每一第二类型分组内,将会得到0-1序列集合,根据取多原则,得到该第二类型分组最终对应的水印信息。例如一个第二类型分组中存在11行数据,11行数据的提取结果为【0、1、1、1、1、0、1、1、0、1、0】,则该第二类型分组最终提取出的水印信息为“1”。当3个第二类型分组的水印信息提取完毕后,拼接在一起得到水印的二进制串,转换为十进制数值后则为最终的水印信息,即数据提供方的用户编号,基于该用户编号,即可快速且准确的追溯到该数据提供方。

实际应用中,为了提高水印的鲁棒性,在目标数据中嵌入不可见字符完成水印添加后,还可以通过变换数据顺序的方式在第一水印数据上再增添一层水印,使得最终添加有水印的目标数数据能够抵抗数据频繁的变更操作,包括删除、更新、插入等常见变更等,具有更高的水印添加效果。具体实现方式如下所述:

所述对所述第一类型分组的目标数据进行水印添加,生成第一水印数据之后,还包括:

根据所述二进制数组的长度确定第二分组数量;

根据所述第二分组数量对所述第一水印数据进行分组,获得第三类型分组以及所述第三类型分组的分组编号;

根据所述二进制数组中的二进制数、以及所述第三类型分组的分组编号,对所述第一水印数据进行水印添加,生成第二水印数据;

将所述第二水印数据发送至所述数据接收方。

仍以上述为例,二进制数值的长度L为3,那么该第二分组数量则可以理解为N

而在确定第二分组数量之后,则可以根据第二分组数量对第一水印数据进行分组,获得第三类型分组以及第三类型分组的分组编号,具体的,根据第二分组数量对第一水印数据进行分组的具体实现,与上述实施例中根据第一分组数量对目标数据进行分组的具体实现相同,在此不再赘述。不同的仅在于计算参数不同,具体的,根据第二分组数量对第一水印数据进行分组的实现公式如下所述:

t=H((K||H(K||t

其中,t表示每一行的分组编号,H表示预设哈希算法,K表示密钥,t

那么,在获得第三类型分组以及第三类型分组的分组编号之后,即可根据二进制数组中的二进制数,以及第三类型分组的分组编号,对第一水印数据进行水印添加,生成第二水印数据。最后将加了两层水印的第二水印数据发送至数据接收方。

具体的,所述根据所述二进制数组中的二进制数、以及所述第三类型分组的分组编号,对所述第一水印数据进行水印添加,生成第二水印数据,包括:

依次确定所述二进制数组中的二进制数,在所述二进制数为1的情况下,根据所述二进制数在所述二进制数组中的顺序,对所述第三类型分组的位置进行调整,以及在所述二进制数为0的情况下,不调整所述第三类型分组的位置,以实现对所述第一水印数据进行水印添加,生成第二水印数据。

具体实施时,依次确定二进制数据中的二进制数,若该二进制数为1的情况下,则根据二进制数在二进制数组中的顺序,对第三类型分组的位置进行调整,例如二进制数组的水印信息为W={ω

如下表2所述:

通过该表2可知,根据上述公式计算的该第一水印数据表中每一行对应的第三类型分组的分组编号的顺序如表2的左列所示,在进行水印嵌入后,该第一水印数据表中每一行对应的第三类型分组的分组编号的顺序如表2的右列所示。

本说明书实施例提供的数据处理方法,在嵌入不可见字符实现目标数据水印添加,获得第一水印数据的基础上,通过第一水印数据顺序的变化再完成一层水印覆盖,该水印添加不会修改任何数据,也不会引入任何误差,仅通过变换顺序在数据上增加水印信息,是上一水印添加基础上的又一层保障,具有较好的鲁棒性。

那么,在将第二水印数据发送至数据接收方之后,在后续进行数据接收方追溯时,则可以通过对第二水印数据中的水印信息进行提取,以准确的追溯数据接收方。具体实现方式如下所述:

所述将所述第二水印数据发送至所述数据接收方之后,还包括:

获取所述第二水印数据,并根据所述第二分组数量对所述第二水印数据进行分组,获得第四类型分组;

根据所述第四类型分组的分组编号,生成验证水印,并根据所述验证水印确定所述数据接收方。

其中,根据第二分组数量对第二水印数据进行分组,获得第四类型分组以及第四类型分组的分组编号的具体实现方式,与上述实施例中,根据第二分组数量对第一水印数据进行分组,获得第三类型分组以及第三类型分组的分组编号的具体实现方式相同,在此不再赘述。

而在确定第四类型分组的分组编号之后,则可以根据第四类型分组的分组编号,生成验证水印,并根据验证水印确定数据接收方。

具体的,根据第四类型分组的分组编号,生成验证水印的具体实现方式如下所述:

所述根据所述第四类型分组的分组编号,生成验证水印,包括:

从所述第四类型分组中确定目标分组;

在所述目标分组的分组编号、小于所述目标分组的前一个分组的分组编号的情况下,记录水印信息为1,以及在所述目标分组的分组编号、大于所述目标分组的前一个分组的分组编号的情况下,记录水印信息为0;

根据所述第四类型分组对应的水印信息,生成验证水印。

其中,目标分组可以理解为第四类型分组中的任意一个第四类型分组,例如第四类型分组包括第四类型分组1、第四类型分组2、第四类型分组3、第四类型分组4;那么该目标分组则可以理解为第四类型分组1、第四类型分组2、第四类型分组3、第四类型分组4中的任意一个第四类型分组。

具体实施时,在确定目标分组的分组编号、小于目标分组的前一个分组的分组编号的情况下,记录水印信息为1,以及在目标分组的分组编号、大于目标分组的前一个分组的分组编号的情况下,记录水印信息为0。

沿用上例,第二水印数据中数据分组的方法与水印嵌入时相同,记录下每个第四类型分组的相对位置;通过获得每个第四类型分组的相对位置,从后往前,每两个一组比较依次提取水印信息。即先比较最后两个分组编号,若第N

仍以上述为例,比如获取到的数据为3、4、1、2、5、6,分组后获得【3、4】、【1、2】、【5、6】,其中,【1、2】为第一组,分组编号为1;【3、4】一组为第二组,分组编号为2;【5、6】一组为第三组,分组编号为3;根据上述实现方式可知,【1、2】的分组编号1小于【5、6】的分组编号3,则该【1、2】组和【5、6】组的位置不变,记录水印信息为0,【3、4】的分组编号2大于【1、2】组的分组编号1,则调整【3、4】组【1、2】组的位置,并记录水印信息为1,即可获得水印信息10。

此外,每个第四类型分组的数据都是聚集出现的,所以根据数据分布便可以计算出各个第四类型分组的相对位置。由于第一水印数据会经过删除、增加、修改等操作,在计算第四类型分组的相对位置的时候会出现偏差。例如,经过数据增加攻击,每个第四类型分组会可能会被插入很多元组或者数据行,这会对第四类型分组所处位置造成极大干扰。为了增加算法的鲁棒性,可以通过计算每个第四类型分组的质心,由质心的相对位置来决定第四类型分组的相对位置。即拿到一组数据,根据数据行的相对位置标记0、1、2...,假设某一第四类型分组中相对位置标记为[m1,m2,...,m

其中,X

本说明书实施例提供的数据处理方法,拿到一份需要与第三方(数据接收方)共享的数据(如目标数据)时,可以先基于不可见字符水印嵌入方案,将目标数据中所有可嵌入不可见字符的地方,完成字符的嵌入,实现对目标数据中的水印添加,该方案拥有较大的字符嵌入空间,具有较好的抗攻击性;通过该方式完成水印嵌入后,在该水印嵌入后的目标数据基础上,基于分组顺序的水印嵌入方案,在嵌入不可见字符的基础上,通过顺序的变化对第一水印数据完成一层水印覆盖,该方案不会修改任何数据,也不会引入任何误差,仅通过变换顺序在数据上增加水印信息,是第一次水印添加的基础上的又一层保障,水印嵌入方式不再单一,具有较好的鲁棒性。即在第一层水印方案拥有充分的水印嵌入空间的基础上,又加上一层水印保障,使得最终发送至数据接收方的数据能够抵抗数据频繁的变更操作,包括删除、更新、插入等常见变更,保证数据的安全性。

参见图3,图3示出了本说明书一个实施例提供的另一种数据处理方法的方法流程图,具体包括以下步骤。

步骤302:将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定分组数量。

步骤304:根据所述分组数量对所述目标数据进行分组,获得目标分组以及所述目标分组的分组编号。

步骤306:根据所述二进制数组中的二进制数、以及所述目标分组的分组编号,对所述目标数据进行水印添加,生成目标水印数据。

步骤308:将所述目标水印数据发送至所述数据接收方。

可选地,所述将所述目标水印数据发送至所述数据接收方之后,还包括:

获取所述目标水印数据,并根据所述分组数量对所述目标水印数据进行分组,获得验证分组以及所述第四类型分组的分组编号;

根据所述验证分组的分组编号,并根据所述验证水印确定所述数据接收方。

具体的,该数据处理方法的具体实现过程,与上述实施例中基于分组顺序在数据中进行水印添加的实现方式相同,仅目标对象不同,即上述实施例中基于分组顺序在数据中进行水印添加的目标对象为已经添加一次水印的第一水印数据;而本说明书实施例中基于分组顺序在数据中进行水印添加的目标对象为原始的、待发送至数据接收方的目标数据。其他的具体水印添加过程以及水印提取过程均可以参见上述实施例的介绍,在此不再赘述。

本说明书实施例提供的另一种数据处理方法,通过顺序的变化对目标数据完成一层水印覆盖,该方案不会修改任何数据,也不会引入任何误差,仅通过变换顺序在数据上增加水印信息,具有较好的鲁棒性。

参见图4,图4示出了本说明书一个实施例提供的另一种数据处理方法中根据分组顺序在数据中进行水印添加以及水印提取的具体处理流程示意图。

步骤402:水印嵌入。

步骤404:将水印转换为长度为L的二进制数组W。

具体的,该水印可以理解为数据接收方的用户编号,那么将水印转换为长度为L的二进制数组W,则可以理解为,将数据接收方的用户编号转换为长度为L的二进制数组W。

步骤406:将目标数据分为L+1组,即L+1个第三类型分组。

步骤408:判断i是否大于等于L,若是,则执行步骤410,若否,则执行步骤412。

其中,i表示第i个第三类型分组。

具体的,判断i是否大于等于L,则可以理解为判断第i个第三类型分组是否大于等于二进制数组的长度;实际应用中,由于目标数据分组的数量是根据二进制数组的长度确定的,因此该目标数据分组的数量不能大于二进制数组的长度。

步骤410:水印添加完毕。

步骤412:判断二进制数组W中的二进制数是否等于0,若是,则执行步骤414,若否,则执行步骤416。

步骤414:不改变前后两个第三类型分组的位置,并将i自增1,继续执行步骤408。

步骤416:调整第i个第三类型分组与第i+1个第三类型分组的位置,并将i自增1,继续执行步骤408。

步骤418:在步骤410进行水印添加完毕之后,则对根据步骤420至步骤416进行水印添加的目标数据进行水印提取。

步骤420:计算添加有水印的目标数据中每行数据属于的分组号,选择密度最大的区间。

即根据上述实施例的分组方式对添加有水印的目标数据进行分组,获得第四类型分组,且确定每个第四类型分组的密度最大区间。例如1、2、3、4、5、6、7、8、9、10这些数据中,1、5、6、10是一个第四类型分组,则该第四类型分组的密度最大区间取5-6,1、10相对于整个分组来说太过于离散;后续即可根据每个第四类型分组的密度最大区间进行第四类型分组的中心的计算。

步骤422:计算每个第四类型分组的中心,确定各第四类型分组的相对位置。

步骤424:根据各第四类型分组的相对位置的变化,提取水印,完成水印提取。

本说明书实施例提供的另一种数据处理方法,通过顺序的变化对目标数据完成一层水印覆盖,该方案不会修改任何数据,也不会引入任何误差,仅通过变换顺序在数据上增加水印信息,具有较好的鲁棒性;并且具有较好的盲检测性,本方案在后期泄露溯源时,原始的数据表单不需要参与到水印的检测和提取过程中。由于数据表单会出现频繁的更新操作,如果不具备盲检测性,则若想提取原始水印,则需要从开始保存的原始数据表单中提取水印,造成资源的浪费。

与上述方法实施例相对应,本说明书还提供了一种数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图5所示,该装置包括:

第一数据转换模块502,被配置为将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定第一分组数量;

第一数据分组模块504,被配置为根据所述第一分组数量对所述目标数据进行分组,获得第一类型分组,并根据所述二进制数组中的二进制数顺序,确定所述第一类型分组对应的分组二进制数;

第一水印添加模块506,被配置为根据所述第一类型分组对应的分组二进制数、预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据;

第一数据发送模块508,被配置为将所述第一水印数据发送至所述数据接收方。

可选地,所述第一数据分组模块504,进一步被配置为:

在确定所述目标数据存在主键、且所述主键为数值类型的情况下,根据所述第一分组数量、所述主键、预设哈希算法,确定所述目标数据的分组编号;

根据所述目标数据的分组编号对所述目标数据进行分组,获得第一类型分组。

可选地,所述第一数据分组模块504,进一步被配置为:

在确定所述目标数据存在主键、且所述主键为文本类型的情况下,将所述主键从文本类型的数据转换为数值类型的数据;

根据所述第一分组数量、所述主键、预设哈希算法,确定所述目标数据的分组编号;

根据所述目标数据的分组编号对所述目标数据进行分组,获得第一类型分组。

可选地,所述第一数据分组模块504,进一步被配置为:

根据预设文本字典确定所述主键对应的字符编号,通过所述字符编号替代所述主键,以将所述主键从文本类型的数据转换为数值类型的数据。

可选地,所述第一水印添加模块506,进一步被配置为:

在确定所述第一类型分组对应的分组二进制数为1的情况下,将预设空白字符添加至所述第一类型分组的目标数据中,以及在确定所述第一类型分组对应的分组二进制数为0的情况下,不在所述第一类型分组的目标数据中添加所述预设空白字符,生成第一水印数据。

可选地,所述第一水印添加模块506,进一步被配置为:

根据所述第一分组数量以及所述目标数据的分组编号,利用预设哈希值计算方法,确定所述第一类型分组的目标数据对应的哈希值;

根据所述第一类型分组对应的分组二进制数、所述哈希值对应的预设空白字符,对所述第一类型分组的目标数据进行水印添加,生成第一水印数据。

可选地,所述第一水印添加模块506,进一步被配置为:

在确定所述第一类型分组对应的分组二进制数为1的情况下,将所述哈希值对应的预设空白字符添加至所述第一类型分组的目标数据中,以及在确定所述第一类型分组对应的分组二进制数为0的情况下,不在所述第一类型分组的目标数据中添加所述哈希值对应的预设空白字符,生成第一水印数据。

可选地,所述装置,还包括:

第一水印提取模块,被配置为:

获取所述第一水印数据,并通过预设函数删除所述第一水印数据中的预设空白字符,获得验证数据;

根据所述第一分组数量对所述验证数据进行分组,获得第二类型分组;

根据所述第二类型分组中验证数据对应的预设空白字符,生成验证水印,并根据所述验证水印确定所述数据接收方。

可选地,所述装置,还包括:

水印数据发送模块,被配置为:

根据所述二进制数组的长度确定第二分组数量;

根据所述第二分组数量对所述第一水印数据进行分组,获得第三类型分组以及所述第三类型分组的分组编号;

根据所述二进制数组中的二进制数、以及所述第三类型分组的分组编号,对所述第一水印数据进行水印添加,生成第二水印数据;

将所述第二水印数据发送至所述数据接收方。

可选地,所述水印数据发送模块,进一步被配置为:

依次确定所述二进制数组中的二进制数,在所述二进制数为1的情况下,根据所述二进制数在所述二进制数组中的顺序,对所述第三类型分组的位置进行调整,以及在所述二进制数为0的情况下,不调整所述第三类型分组的位置,以实现对所述第一水印数据进行水印添加,生成第二水印数据。

可选地,所述装置,还包括:

第二水印提取模块,被配置为:

获取所述第二水印数据,并根据所述第二分组数量对所述第二水印数据进行分组,获得第四类型分组以及所述第四类型分组的分组编号;

根据所述第四类型分组的分组编号,生成验证水印,并根据所述验证水印确定所述数据接收方。

可选地,所述第二水印提取模块,进一步被配置为:

从所述第四类型分组中确定目标分组;

在所述目标分组的分组编号、小于所述目标分组的前一个分组的分组编号的情况下,记录水印信息为1,以及在所述目标分组的分组编号、大于所述目标分组的前一个分组的分组编号的情况下,记录水印信息为0;

根据所述第四类型分组对应的水印信息,生成验证水印。

本说明书实施例提供的该数据处理方法,在确定需要发送数据接收方的目标数据后,通过不可见字符(即空白字符,如换行符、回车符、空格等)的水印嵌入方案,根据第一类型分组对应的分组二进制数、预设空白字符,在目标数据中所有可嵌入不可见字符的地方,完成不可见字符嵌入,不受限于长段文本格式,也不需要添加过多的伪数据,可以使用有限空间中尽量多的嵌入水印信息,实现对目标数据的水印添加,使得该目标数据具有较好的抗攻击性;那么当发送至数据接收方的该第一水印数据出现数据泄露时,企业就可以基于该泄露数据中添加的水印,准确的溯源定位到该数据接收方。

上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该一种数据处理装置的技术方案与上述的一种数据处理方法的技术方案属于同一构思,一种数据处理装置的技术方案未详细描述的细节内容,均可以参见上述一种数据处理方法的技术方案的描述。

与上述方法实施例相对应,本说明书还提供了另一种数据处理装置实施例,图6示出了本说明书一个实施例提供的另一种数据处理装置的结构示意图。如图6所示,该装置包括:

第二数据转换模块602,被配置为将目标数据的数据接收方的用户编号转换为二进制数组,并根据所述二进制数组的长度确定分组数量;

第二数据分组模块604,被配置为根据所述分组数量对所述目标数据进行分组,获得目标分组以及所述目标分组的分组编号;

第二水印添加模块606,被配置为根据所述二进制数组中的二进制数、以及所述目标分组的分组编号,对所述目标数据进行水印添加,生成目标水印数据;

第二数据发送模块608,被配置为将所述目标水印数据发送至所述数据接收方。

可选地,所述装置,还包括:

第三水印提取模块,被配置为:

获取所述目标水印数据,并根据所述分组数量对所述目标水印数据进行分组,获得验证分组以及所述第四类型分组的分组编号;

根据所述验证分组的分组编号,生成验证水印,并根据所述验证水印确定所述数据接收方。

本说明书实施例提供的另一种数据处理装置,通过顺序的变化对目标数据完成一层水印覆盖,该方案不会修改任何数据,也不会引入任何误差,仅通过变换顺序在数据上增加水印信息,具有较好的鲁棒性。

上述为本实施例的另一种数据处理装置的示意性方案。需要说明的是,该另一种数据处理装置的技术方案与上述的另一种数据处理方法的技术方案属于同一构思,另一种数据处理装置的技术方案未详细描述的细节内容,均可以参见上述另一种数据处理方法的技术方案的描述。

图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。

计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。

在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备700还可以是移动式或静止式的服务器。

其中,处理器720用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。

上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

技术分类

06120115934675