发明内容
本发明的第一个方面是提供一种数据的处理方法,包括:
接收客户端发送的数据备份请求消息,所述数据备份请求消息包括:用户标识和备份数据的指纹信息;
根据所述备份数据的指纹信息,查询所述用户标识对应的文件,判断是否存在与所述备份数据相同的数据;若判断出没有存在与所述备份数据相同的数据,则根据所述备份数据的指纹信息,查询其他用户标识对应的文件夹,判断是否存在与所述备份数据相同的数据;
若判断出在所述其他用户标识对应的文件夹中存在与所述备份数据相同的数据,其中,在所述其他历史标识对应的文件夹中与所述备份数据相同的数据为第二历史数据,判断所述第二历史数据对应的引用数据的数量是否小于所述第二历史数据对应的随机数;其中,所述随机数大于等于预设阈值;
若判断出所述第二历史数据对应的引用数据的数量小于所述第二历史数据对应的随机数,则发送备份消息给所述客户端,并接收所述客户端发送的所述备份数据以及生成所述第二历史数据的引用数据。
本发明的另一个方面是提供一种数据的处理设备,包括:
收发模块,用于接收客户端发送的数据备份请求消息,所述数据备份请求消息包括:用户标识和备份数据的指纹信息;
判断模块,用于根据所述备份数据的指纹信息,查询所述用户标识对应的文件,判断是否存在与所述备份数据相同的数据;若判断出没有存在与所述备份数据相同的数据,则根据所述备份数据的指纹信息,查询其他用户标识对应的文件夹,判断是否存在与所述备份数据相同的数据;若判断出在所述其他用户标识对应的文件夹中存在与所述备份数据相同的数据,其中,在所述其他历史标识对应的文件夹中与所述备份数据相同的数据为第二历史数据,判断所述第二历史数据对应的引用数据的数量是否小于所述第二历史数据对应的随机数;其中,所述随机数大于等于预设阈值;
所述收发模块还用于若所述判断模块判断出所述第二历史数据对应的引用数据的数量小于所述第二历史数据对应的随机数,则发送备份消息给所述客户端;并接收所述备份数据;
引用数据生成模块,用于生成所述第二历史数据的引用数据。
本发明的又一个方面是提供一种数据的处理***,包括:客户端和上述所述的数据的处理设备。
本发明实施例中,根据该备份数据的指纹信息,查询该用户标识对应的文件夹以及其他用户文件夹中的数据中,是否已经存储有相同的数据,若判断得到其他用户文件中的数据中存在相同的数据时,判断该相同数据对应的引用数据的数量是否小于该相同数据对应的随机数,其中在其他用户标识对应的文件中的相同数据为第二历史数据,会对第二历史数据的引用数据的数量和随机数大小进行比较,从而使得其他用户将带有猜测内容的备份数据备份到云端时,即使云端保存了相同内容的数据,由于在第二历史数据对应的引用数据的数量小于第二历史数据对应的随机数时,客户端依然要传输该备份数据到云端,因此使得其他用户无法检测数据库中是否已经备份了相同数据,进而有效地避免了用户的数据泄露。
具体实施方式
图1为本发明数据的处理方法的一个实施例的流程图,如图1所示,本实施例的执行主体为数据的处理设备,该设备设置在云存储中,则该方法包括:
步骤101、接收客户端发送的数据备份请求消息,该数据备份请求消息包括:用户标识和备份数据对应的指纹信息;
其中,云存储还可以称之为云端,该云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件***等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个***。指纹信息可以是备份数据的哈希(HASH)值,也可以使用其他可以代表数据独一无二特征的数值来作为该数据的指纹信息。
在本实施例中,客户端以备份数据为单位,计算该备份数据的指纹信息,再将该备份数据的指纹信息和用户标识携带在数据备份请求消息中发送给数据的处理设备。
步骤102、根据该备份数据的指纹信息,查询该用户标识对应的文件夹,判断是否存在与该备份数据相同的数据;若判断出没有存在与该备份数据相同的数据,则根据该备份数据的指纹信息,查询该其他用户标识对应的文件夹,判断是否存在与该备份数据相同的数据。
步骤103、若判断出在该其他用户标识对应的文件夹中存在与该备份数据相同的数据,其中,在该其他用户标识对应的文件夹中与该备份数据相同的数据为第二历史数据,判断该第二历史数据对应的引用数据的数量是否小于该第二历史数据对应的随机数;其中,该随机数大于等于预设阈值。
步骤104、若判断出该第二历史数据对应的引用数据的数量小于该第二历史数据对应的随机数,则发送备份消息给该客户端,并接收该客户端发送的该备份数据以及生成该第二历史数据的引用数据
在本实施例中,该引用数据的大小很小,且该引用数据的内容为对相同内容的历史数据的指向,即客户端在读取该数据时,可以根据具有相同内容的历史数据的指向,找到该指向对应的内容相同的历史数据,并将该历史数据读取出来。
在本实施例中,数据的处理设备中存储的历史数据对应的随机数均是随机生成,即任意两个历史数据对应的随机数可以相同,也可以不相同。当随机数大于等于预设阈值,则一旦判断出其他用户标识文件夹中存在与该备份数据相同的数据,则设置与该备份数据相同的数据为第二历史数据,并判断该第二历史数据的引用数据是否小于该第二历史数据的随机数。由于本发明主要解决的技术问题是如何防止机密的历史数据内容不被窃取,则一般情况下,存储的机密历史数据的数量为1,引用数据的数量一般也为1,当备份数据的HASH值与该机密数据的HASH值相同时,则说明该备份数据的内容与机密历史数据的内容相同,但是在引用数据小于随机数的情况下,则仍然需要提示用户保存所述备份数据,因此,用户无法知道云端存储了与备份数据相同的机密历史数据。如果用户再次向云端备份与该备份数据相同的数据,即使在数据保存过程中,用户通过数据流量来判断出数据库中已经保存有相同的数据,即云端采用了源端重复数据删除处理,但是因为之前已经存储过一次备份数据,且随机数对于该用户而言是不知道的,所以还是无法判断到底云端是否存储了与该备份数据相同的机密历史数据。
在本实施例中,接收客户端发送的携带有用户标识和备份数据的HASH值的数据备份请求消息,并根据该备份数据的指纹信息,查询该用户标识对应的文件夹以及其他用户文件夹中的数据中,是否已经存储有相同的数据,若判断得到其他用户文件中的数据中存在相同的数据时,判断该相同数据对应的引用数据的数量是否小于该相同数据对应的随机数,其中在其他用户标识对应的文件中的相同数据为第二历史数据,会对第二历史数据的引用数据的数量和随机数大小进行比较,从而使得其他用户将带有猜测内容的备份数据备份到云端时,即使云端保存了相同内容的数据,由于在第二历史数据对应的引用数据的数量小于第二历史数据对应的随机数,且随机数大于等于预设阈值时,客户端依然要传输该备份数据到云端,因此使得其他用户无法检测数据库中是否已经备份了相同数据,进而有效地避免了用户的数据泄露。
图2为本发明数据的处理方法的另一个实施例的流程图,在本实施例,该方法的执行主体为数据的处理设备,该设备设置在云存储中,且以指纹数据为HASH值为例,详细介绍本实施例的技术方案,则如图2所示,则该方法包括:
步骤201、接收客户端发送的数据备份请求消息,该数据备份请求消息包括:用户标识和备份数据的HASH值。
在本实施例中,客户端以备份数据为单位,计算该备份数据的HASH值,再将该备份数据的HASH值和用户标识携带在数据备份请求消息中发送给数据的处理设备。
步骤202、根据该备份数据的HASH值,查询该用户标识对应的文件夹,判断是否存在与该备份数据相同的数据,若不存在,则执行步骤203;若存在,则执行步骤207。
步骤203、根据该备份数据的HASH值,查询其他用户标识对应的文件夹,判断是否存在与该备份数据相同的数据,其中,在其他用户标识对应的文件夹中存在与该备份数据相同的数据为第二历史数据;若存在,则执行步骤204;若不存在,则执行步骤209。
步骤204、判断该第二历史数据对应的引用数据的数量是否小于该第二历史数据对应的随机数;若小于,则执行步骤205;若大于等于,则执行步骤208。其中,该随机数大于等于预设阈值。
在本实施例中,数据的处理设备中存储的历史数据对应的随机数均是随机生成,即任意两个历史数据对应的随机数可以相同,也可以不相同。随机数阈值的设置,可以根据统计分析用户对机密数据的备份习惯来设置,例如,对于机密信息,通常用户习惯于仅在保存一次,该用户的机密信息引用数据的数量通常就不会超过2,那么,这个随机数的阈值就可以设置为2,这样,随机数就会大于引用数据的数量,其他用户在云端保存数据时,就不会出现源端重复数据删除的情况。如果对用户的习惯进行统计分析后得知,通常用户习惯将机密数据再备份一份,那么,该用户的机密信息的引用数据的数量通常不会超过3,这个随机数的阈值就可以设置为3。
步骤205、发送备份消息给客户端,并接收该客户端发送的该备份数据以及生成该第二历史数据的引用数据。
步骤206、将第二历史数据的引用数据的数量加1。结束。
步骤207、生成第一历史数据的引用数据,将第一历史数据的引用数据的数量加1,再发送备份成功消息给客户端。结束。
步骤208、生成第二历史数据对应的引用数据,并发送备份成功消息给客户端,并执行步骤206。
步骤209、发送数据备份请求确认消息给该客户端,并接收以及保存该客户端发送的备份数据,再生成该备份数据对应的随机数。
在本实施例中,举例来说,当用户第一次备份一份备份数据时,客户端先以该备份数据为单位,计算该备份数据的HASH值,并将该备份数据的HASH值和用户标识携带在数据备份请求消息中发送给数据的处理设备,数据的处理设备接收到该数据备份请求消息后,根据该备份数据的HASH值,查询该用户标识对应的文件夹,判断是否存在与该备份数据对应的数据,由于该备份数据是用户第一次备份的一份备份数据,因此该文件夹中不存在与该备份数据相同的数据,则根据该备份数据的HASH值,查询其他用户标识对应的文件夹是否存在与该备份数据相同的数据,若不存在,发送备份请求消息给该客户端,并接收以及保存该客户端发送该备份数据,再生成该备份数据对应的随机数;其中,该随机数的取值范围可以为[2,N],其中,N为整数。该N可以为10。另外,当数据的处理设备保存该备份数据,则该备份数据对应的引用数据的数量为1。
若该其他用户标识对应的文件夹中存在与该备份数据相同的数据,其中,该备份数据相同的数据为第二历史数据,并需要判断该第二历史数据对应的引用数据的数量是否小于该第二历史数据对应的随机数,若判断该第二历史数据对应的引用数据的数量小于该第二历史数据对应的随机数,则发送备份消息给客户端,并接收该备份数据,再生成该第二历史数据的引用数据,将第二历史数据对应的引用数据的数量加1。
当用户第二次备份该备份数据时,客户端先以该备份数据为单位,计算该备份数据的HASH值,该备份数据的HASH值与用户第一次备份该备份数据的HASH值相同,并将该备份数据的HASH值和用户标识携带在数据备份请求消息中发送给数据的处理设备,由于该备份数据是用户第二次备份,数据的处理设备判断出该用户标识对应的文件夹中存在与该备份数据相同的数据,则设置该用户标识对应的文件夹中,与该备份数据相同的数据为第一历史数据,并生成该第一历史数据的引用数据,将该第一历史数据的应用数据的数量加1,再发送备份成功消息给客户端。
在本实施例中,通过接收客户端发送的携带有用户标识和备份数据的HASH值的数据备份请求消息,并根据该备份数据的HASH值,查询该用户标识对应的文件夹以及其他用户文件夹中的数据中,是否已经存储有相同的数据,若判断得到其他用户文件中的数据中存在相同的数据时,判断该相同数据对应的引用数据的数量是否小于该相同数据对应的随机数,其中在其他用户标识对应的文件中的相同数据为第二历史数据,会对第二历史数据的引用数据的数量和随机数大小进行比较,从而使得其他用户将带有猜测内容的备份数据备份到云端时,即使云端保存了相同内容的数据,由于在第二历史数据对应的引用数据的数量小于第二历史数据对应的随机数,且随机数大于等于预设阈值时,客户端依然要传输该备份数据到云端,因此使得其他用户无法检测数据库中是否已经备份了相同数据,进而有效地避免了用户的数据泄露。另外,当第二历史数据对应的应用数据的数量大于等于第二历史数据对应的随机数时,生成第二历史数据对应的引用数据,从而有效地提高了客户端备份性能。
图3为本发明数据的处理设备的一个实施例的结构示意图,如图3所示,本实施例的设备包括:收发模块11、判断模块12和引用数据生成模块13,其中,收发模块11用于接收客户端发送的数据备份请求消息,该数据备份请求消息包括:用户标识和备份数据的指纹信息;判断模块12用于根据该备份数据的指纹信息,查询该用户标识对应的文件,判断是否存在与该备份数据相同的数据;若判断出没有存在与该备份数据相同的数据,则根据该备份数据的指纹信息,查询其他用户标识对应的文件夹,判断是否存在与该备份数据相同的数据;若判断出在该其他用户标识对应的文件夹中存在与该备份数据相同的数据,其中,在该其他历史标识对应的文件夹中与该备份数据相同的数据为第二历史数据,判断该第二历史数据对应的引用数据的数量是否小于该第二历史数据对应的随机数;其中,该随机数大于等于预设阈值。收发模块11还用于若该判断模块12判断出该第二历史数据对应的引用数据的数量小于该第二历史数据对应的随机数,则发送备份消息给该客户端;并接收该备份数据;引用数据生成模块13用于生成该第二历史数据的引用数据。
本实施例的数据的处理设备可以执行图1所示方法实施例的技术方案,其原理相类似,此处不再赘述。
在本实施例中,通过接收客户端发送的携带有用户标识和备份数据的指纹信息的数据备份请求消息,并根据该备份数据的指纹信息,查询该用户标识对应的文件夹以及其他用户文件夹中的数据中,是否已经存储有相同的数据,若判断得到其他用户文件中的数据中存在相同的数据时,判断该相同数据对应的引用数据的数量是否小于该相同数据对应的随机数,其中在其他用户标识对应的文件中的相同数据为第二历史数据,会对第二历史数据的引用数据的数量和随机数大小进行比较,从而使得其他用户将带有猜测内容的备份数据备份到云端时,即使云端保存了相同内容的数据,由于在第二历史数据对应的引用数据的数量小于第二历史数据对应的随机数,且随机数大于等于预设阈值时,客户端依然要传输该备份数据到云端,因此使得其他用户无法检测是否产生了源端重复数据删除,进而有效地避免了用户的数据泄露。
图4为本发明数据的处理设备的另一个实施例的结构示意图,如图4所示,在上述图3所示实施例的基础上,判断模块12还用于若判断出该用户标识对应的文件夹中存在与该备份数据相同的数据,其中,在该用户标识对应的文件夹中,存在与该备份数据相同的数据为第一历史数据;引用数据生成模块13还用于生成该第一历史数据的引用数据。收发模块11还用于发送备份成功消息给该客户端。
进一步的,引用数据生成模块13还用于若判断模块12判断出该第二历史数据对应的引用数据的数量大于等于该第二历史数据对应的随机数,则生成该第二历史数据对应的引用数据;该收发模块11还用于发送备份成功消息给该客户端。
更进一步的,该设备还包括:引用数据数量记录模块14,用于将该第一历史数据对应的引用数据的数量加1;或者,还用于将该第二历史数据对应的引用数据的数量加1。
更进一步的,收发模块11还用于若该判断模块12判断出在该其他用户标识对应的文件夹中没有存在与该备份数据相同的数据,则发送备份消息给该客户端;并接收该客户端发送的备份数据;则该设备还包括:数据存储模块15和随机数生成模块16,其中,数据存储模块15用于保存所述备份数据;随机数生成模块16用于生成所述备份数据对应的随机数。
本实施例的数据的处理设备可以执行图2所示方法实施例的技术方案,其原理相类似,此处不再赘述。
在本实施例中,通过接收客户端发送的携带有用户标识和备份数据的指纹信息的数据备份请求消息,并根据该备份数据的指纹信息,查询该用户标识对应的文件夹以及其他用户文件夹中的数据中,是否已经存储有相同的数据,若判断得到其他用户文件中的数据中存在相同的数据时,判断该相同数据对应的引用数据的数量是否小于该相同数据对应的随机数,其中在其他用户标识对应的文件中的相同数据为第二历史数据,会对第二历史数据的引用数据的数量和随机数大小进行比较,从而使得其他用户将带有猜测内容的备份数据备份到云端时,即使云端保存了相同内容的数据,由于在第二历史数据对应的引用数据的数量小于第二历史数据对应的随机数,且随机数大于等于预设阈值时,客户端依然要传输该备份数据到云端,因此使得其他用户无法检测是否产生了源端重复数据删除,进而有效地避免了用户的数据泄露。另外,当第二历史数据对应的应用数据的数量大于等于第二历史数据对应的随机数时,生成第二历史数据对应的引用数据,从而有效地提高了客户端备份性能。
图5为本发明数据的处理***的一个实施例的结构示意图,如图5所示,该***包括客户端21和数据的处理设备22,其中,数据的处理设备22可以为图3或图4所示设备,并且可以执行图1或图2所示方法实施例的技术方案,其原理相类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。