利索能及
我要发布
收藏
专利号: 2024115536814
申请人: 青岛沣驿网络科技有限公司
专利类型:发明专利
专利状态:授权未缴费
更新日期:2025-04-10
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种云平台中数据存储方法,其特征在于,包括以下步骤:

S1:提示用户输入密码,获取密码字符串PasswordStr,根据所述密码字符串PasswordStr获得密码数组PasswordSet[],获取数组长度N;

S2:将初始数据存入到DataByte[]中,获取数组长度M,新建P个数组,其中P = M/N向上取整,对于P个数组中的第i个数组,其依次存储DataByte[]中下标为(i‑1)*N到 i*N‑1的元素;所述i为小于等于P的正整数;

S3:判断N与P的大小,若N小于等于P,对于P个数组中的第i个数组,向其下标为N‑i的位置插入PasswordSet[]中下标为i‑1的元素,i为小于等于N的正整数;否则,将PasswordSet[]拆分成K个数组,再将K个数组插入到P个数组指定位置,其中K=P;

S4:对得到的P个数组按0至P‑1的顺序进行编号,再对编号后的数据依次利用用户输入的密码进行加密,将加密后的数组发送至云平台多个节点存储。

2.根据权利要求1所述的方法,其特征在于,所述将加密后的数组发送至云平台多个节点存储,具体包括:获取云平台的各个节点剩余存储空间,若剩余空间不足,则不为该节点分配数据;反之,根据剩余空间将所述数组分配给节点。

3.根据权利要求1所述的方法,其特征在于,所述将PasswordSet[]拆分成K个数组,再将K个数组插入到P个数组指定位置,具体为:对于所述K个数组的第k个数组,将其插入到所述P个数组的第k个数组中下标为k‑1元素后面,下标为k元素前面,k=1,2,...,K。

4.根据权利要求2所述的方法,其特征在于,所述根据剩余空间将所述数组分配给节点,具体为:获取节点的剩余空间的空闲时间t以及数据传输到节点的传输成本,根据传输成本得到权重λ,根据t*λ设置节点的优先级,根据优先级对节点排序,将优先级大于阈值的节点,作为候选节点,为候选节点分配数据;所述传输成本是指数据传输到节点的时间和占用的网络带宽。

5.根据权利要求1‑4任一项所述的方法,其特征在于,  所述根据密码字符串PasswordStr获得密码数组PasswordSet[],具体为:对字符串PasswordStr进行hash构造,将任意长度的输入,转换成固定长度的编码输出,再将生成的哈希值存储于PasswordSet[]中。

6.一种云平台中数据存储系统,其特征在于,包括以下模块:

秘钥生成模块:用于提示用户输入密码,获取密码字符串PasswordStr,根据所述密码字符串PasswordStr获得密码数组PasswordSet[],获取数组长度N;

数据分段模块:用于将初始数据存入到DataByte[]中,获取数组长度M,新建P个数组,其中P = M/N向上取整,对于P个数组中的第i个数组,其依次存储DataByte[]中下标为(i‑

1)*N到 i*N‑1的元素;所述i为小于等于P的正整数;

数据混淆模块:用于判断N与P的大小,若N小于等于P,对于P个数组中的第i个数组,向其下标为N‑i的位置插入PasswordSet[]中下标为i‑1的元素,i为小于等于N的正整数;否则,将PasswordSet[]拆分成K个数组,再将K个数组插入到P个数组指定位置,其中K=P;

加密存储模块:用于对得到的P个数组按0至P‑1的顺序进行编号,再对编号后的数据依次利用用户输入的密码进行加密,将加密后的数组发送至云平台多个节点存储。

7.根据权利要求6所述的系统,其特征在于,所述对数组加密后发送至云平台多个节点存储,具体包括:获取云平台的各个节点剩余存储空间,若剩余空间不足,则不为该节点分配数据;反之,根据剩余空间将所述数组分配给节点。

8.根据权利要求6所述的系统,其特征在于,所述将PasswordSet[]拆分成K个数组,再将K个数组插入到P个数组指定位置,具体为:对于所述K个数组的第k个数组,将其插入到所述P个数组的第k个数组中下标为k‑1元素后面,下标为k元素前面,k=1,2,...,K。

9.根据权利要求7所述的系统,其特征在于,所述根据剩余空间将所述数组分配给节点,具体为:获取节点的剩余空间的空闲时间t以及数据传输到节点的传输成本,根据传输成本得到权重λ,根据t*λ设置节点的优先级,根据优先级对节点排序,将优先级大于阈值的节点,作为候选节点,为候选节点分配数据;所述传输成本是指数据传输到节点的时间和占用的网络带宽。

10.根据权利要求6‑9任意一项所述的系统,其特征在于,所述根据密码字符串PasswordStr获得密码数组PasswordSet[],具体为:对字符串PasswordStr进行hash构造,将任意长度的输入,转换成固定长度的编码输出,再将生成的哈希值存储于PasswordSet[]中。