发明内容
本发明提供一种隐藏数据存储的方法及系统以解决上述问题。
本发明提供一种隐藏数据存储的方法,包括以下步骤。客户端根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器。所述服务器获取自身剩余存储空间大小及簇个数。若服务器剩余存储空间大小大于或等于所述加密文件大小,则所述服务器根据第二策略,获得文件分配表。所述服务器根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中。
本发明提供一种隐藏数据存储的系统,包括客户端及服务器,所述客户端连接服务器。所述客户端,用于根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器。所述服务器,用于获取自身剩余存储空间大小及簇个数,还用于若所述剩余存储空间大小大于或等于所述加密文件大小,根据第二策略,获得文件分配表。所述服务器,还用于根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中。
相较于先前技术,根据本发明提供的隐藏数据存储的方法及系统,客户端根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器。所述服务器获取自身剩余存储空间大小及簇个数。若服务器剩余存储空间大小大于或等于所述加密文件大小,则所述服务器根据第二策略,获得文件分配表。所述服务器根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中,从而实现了数据安全性。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的隐藏数据存储的方法的流程图。如图1所示,本发明的较佳实施例提供的隐藏数据存储的方法包括步骤101~104。
步骤101:客户端根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器。
具体而言,客户端根据第一策略,将待存储文件生成加密文件的过程为:客户端根据预设分割块数,通过分块算法,对所述待存储文件进行分块后,进行组合;在组合后的文件块的首尾加上校验码(定义为:第一数据);利用MD5算法计算第一数据的文件签名(定义为:第二数据);组合主第一数据、备第一数据及第二数据,获得加密文件。其中,客户端根据预设分割块数,通过分块算法,对所述待存储文件进行分块的方式为:取【v/i】余数,对所述待存储文件进行分块,其中,v代表待存储文件中的数据位序,i为预设分割块数。
举例而言,若客户端的待存储文件为“一种文件隐形加密存储的方法和系统”,预设分割块数为3,所述3个分割数据块分别为余数为0的文件块1、余数为1的文件块2及余数为2的文件块3。客户端取【v/i】余数,例如:“一”在待存储文件中的数据位序为1,则取【1/3】的余数为1,则将“一”放入余数为1的文件块2;“种”在待存储文件中的数据位序为2,则取【2/3】的余数为2,则将“种”放入余数为2的文件块3;“文”在待存储文件中的数据位序为3,则取【3/3】的余数为0,则将“文”放入余数为0的文件块1,以此类推,获得以下文件块:
余数为0的文件块1 |
文形存方系 |
余数为1的文件块2 |
一件加储法统 |
余数为2的文件块3 |
种隐密的和 |
组合上述三个文件块得到如下文件块:文形存方系一件加储法统种隐密的和。在所述组合后的文件块的首尾加上校验码,定义为第一数据:BEGIN文形存方系一件加储法统种隐密的和END。利用MD5算法计算第一数据的文件签名,并定义为第二数据,如下所示: 57219DFEB567EE470DDA2824F0270A5E。组合主第一数据、备第一数据及第二数据,获得加密文件为:BEGIN文形存方系一件加储法统种隐密的和END BEGIN文形存方系一件加储法统种隐密的和END57219DFEB567EE470DDA2824F0270A5E。
步骤102:所述服务器获取自身剩余存储空间大小及簇个数。
具体而言,所述服务器根据预设的单个簇的存储空间大小及剩余存储空间大小,获得簇的个数。计算公式为,簇的个数=服务器剩余存储空间大小/单个簇的存储空间大小。
举例而言,若单个簇的存储空间大小为4K,服务器剩余存储空间大小4M,则簇的个数=4M/4K=1024。
步骤103:若服务器剩余存储空间大小大于或等于所述加密文件大小,则所述服务器根据第二策略,获得文件分配表。
具体而言,服务器比较所述自身剩余存储空间大小与加密文件大小,若服务器剩余存储空间大小小于所述加密文件大小,所述服务器向所述客户端返回错误提示。
当服务器比较自身剩余存储空间大小大于或等于所述加密文件大小时,服务器根据第二策略,获得文件分配表的过程为:所述服务器根据
获得文件分配表,其中,x≥1且x为正整数;y=ax
2+bx+c(a<0),x代表第几个簇,y代表x对应的值。
举例而言,假设加密文件大小为2M,服务器的剩余存储空间大小为4M,若单个簇的存储空间大小为4K,则服务器的剩余存储空间有1024个簇。函数y=ax
2+bx+c(a<0)的抛物线与x轴的交集的面积即为加密文件大小,即2M。于此,所述抛物线与x轴的交点坐标为(0,0)及(1024,0),由此可得所述抛物线表达式为y=a(x-0)(x-1024),即y=ax
2-1024ax。
于本实施例中,即
计算获得a=-3/512
2,则所述函数式y=-3/512
2x
2+3/256x。抛物线如图2所示。
于本实施例中, 则第1个簇上待存储的加密文件大小为 第2个簇上待存储的加密文件大小为 依次类推,第1024个簇上待存储的加密文件大小为 获得文件分配表如下:
簇的序号 |
待存储的加密文件大小 |
1 |
0.00585556KB |
2 |
0.017551422KB |
... |
... |
512 |
2.999996185KB |
... |
... |
1024 |
0.00585556KB |
步骤104:所述服务器根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中。
具体而言,所述服务器根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中的过程为:所述服务器查询文件分配表中各个簇对应的待存储的加密文件大小,获取对应大小的加密文件依次存储到自身剩余存储空间中的对应簇中。
图3所示为根据本发明的较佳实施例提供的隐藏数据存储的系统的示意图。如图3所示,本发明的较佳实施例提供的隐藏数据存储的系统包括客户端201及服务器202,所述客户端201连接服务器202。所述客户端201,用于根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器202。所述服务器202,用于获取自身剩余存储空间大小及簇个数,还用于若所述剩余存储空间大小大于或等于所述加密文件大小,根据第二策略,获得文件分配表。所述服务器202,还用于根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中。关于上述系统的操作流程同上述方法所述,故于此不再赘述。
综上所述,根据本发明较佳实施例提供的隐藏数据存储的方法及系统,客户端根据第一策略,将待存储文件生成加密文件并将所述加密文件发送至服务器。所述服务器获取自身剩余存储空间大小及簇个数。若服务器剩余存储空间大小大于或等于所述加密文件大小,则所述服务器根据第二策略,获得文件分配表。所述服务器根据所述文件分配表及所述加密文件,将所述加密文件存储在自身剩余存储空间中的簇中,从而实现了数据安全性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。