本发明涉及信息技术领域,尤其涉及一种数据存储方法、数据节点及存储介质。
背景技术:
在相关技术中,有很多数据均是集中存储在本地数据库,若本地数据库遭受到攻击,则数据很可能被盗窃或被篡改。这种数据的存储方法和管理方法,非常容易导致数据的泄露和被非法篡改;故而数据集中存储会有可靠性和安全性低的问题。
技术实现要素:
本发明提供一种数据存储方法、数据节点及存储介质。
一种数据存储方法,包括:
对原始数据进行hash运算,得到数据hash值;
利用加密密钥对所述原始数据进行加密,得到加密数据;
对所述加密数据进行分割,获得加密分块;
对加密分块进行hash运算,得到分块hash值;
将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,其中,所述分块hash值用于区块链网络验证所述加密分块的完整性;所述加密密钥的密钥信息用于解密加密分块恢复出所述原始数据;所述加密密钥的密钥信息与所述数据hash值共同用于验证所述原始数据的完整性。
基于上述方案,所述将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,包括:
按照预设数据格式,将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值组合,一起发送给所述区块链网络。
基于上述方案,所述利用加密密钥对所述原始数据进行加密,得到加密数据,包括:
从加密算法库中选择加密算法,并确定所述加密密钥;
所述将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,包括:
将所述数据hash值、所述加密密钥的密钥信息、所述加密算法的算法信息、所述加密分块及分块hash值,一起发送所述区块链网络。
基于上述方案,所述原始数据可为:存储在区块链上的目标数据的存证数据。
一种数据存储方法,包括:
接收数据hash值、加密密钥的密钥信息、加密分块及分块hash值;
基于所述分块hash值对所述加密分块进行分块完整性验证;
基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块;
组合解密分块,获得解密数据;
基于所述数据hash值,对所述解密数据进行数据的整性验证;
在所述分块完整性验证及数据完整性验证均通过后,将所述加密分块存储到区块链上。
基于上述方案,所述方法还包括:
接收加密算法的算法信息;
所述基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块,包括:
根据所述算法信息,基于与所述加密算法对应的解密算法及所述加密密钥的密钥信息解密所述加密分块得到所述解密分块。
一种数据存储装置,包括:
第一hash模块,用于对原始数据进行hash运算,得到数据hash值;
加密模块,用于利用加密密钥对所述原始数据进行加密,得到加密数据;
分割模块,用于对所述加密数据进行分割,获得加密分块;
第二hash模块,用于对加密分块进行hash运算,得到分块hash值;
发送模块,用于将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,其中,所述分块hash值用于区块链网络验证所述加密分块的完整性;所述加密密钥的密钥信息,用于解密加密分块恢复出所述原始数据;所述加密密钥的密钥信息与所述数据hash值共同用于验证所述原始数据的完整性。
一种数据存储装置,包括:
解密模块,用于基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块;
组合模块,用于组合解密分块,获得解密数据;
第二验证模块,用于基于所述数据hash值,对所述解密数据进行数据的整性验证;
区块链模块,用于在所述分块完整性验证及数据完整性验证均通过后,将所述加密分块存储到区块链上。
一种数据节点,包括:
网络接口;
存储器;
处理器,分别与所述网络接口及所述存储器连接,用于通过计算机程序的执行,控制所述网络接口的通信及所述存储器的信息存储,并实现一个或多个技术方案提供的数据存储方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序;所述计算机程序被处理器执行后,能够实现前述一个或多个技术方案提供的数据存储方法。
本发明提供的技术方案,首先会对原始数据进行hash运算,会得到整个原始数据的hash值(即数据hash),可以用于对原始数据进行完整性验证。同时利用数据分割技术,将加密后的加密数据分割至少两个加密分块,并对每一个加密分块进行hash运算得到分块hash值,分块hash值可以用于加密分块的完整性验证。如此,不管原始数据和/或加密分块被篡改,都能够通过完整性验证发现,确保存储到区块链上的数据自身的可信度;与此同时,结合数据分割技术,将原始数据分割成加密分块存储到区块链上,利用区块链的分布式存储,相对于数据存储本地,提升了数据存储的可靠性和安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的一种数据存储方法的流程示意图;
图2为本发明实施例提供的另一种数据存储方法的流程示意图;
图3为本发明实施例提供的一种数据存储装置的结构示意图;
图4为本发明实施例提供的另一种数据存储装置的结构示意图
图5为本发明实施例提供的再一种数据存储方法的流程示意图;
图6位本发明实施例提供的另一种数据存储装置的结构示意图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
本发明实施例提供一种可以实现本发明实施例提供的数据存储方法的数据节点。该数据节点可包括一个或多个处理器(例如中央处理器(centralprocessingunit,cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(randomaccessmemory,ram)和/或非易失性内存等形式,如只读存储器(read-onlymemory,rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(phasechangeram,pram)、静态随机存取存储器(staticrandomaccessmemory,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
如图1所示,本实施例提供一种数据存储方法,包括:
步骤s101:对原始数据进行hash运算,得到数据hash值;
步骤s102:利用加密密钥对所述原始数据进行加密,得到加密数据;
步骤s103:对所述加密数据进行分割,获得加密分块;
步骤s104:对加密分块进行hash运算,得到分块hash值;
步骤s105:将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,其中,所述分块hash值用于区块链网络验证所述加密分块的完整性;所述加密密钥用于解密加密分块恢复出所述原始数据;所述加密密钥的密钥信息与所述数据hash值共同用于验证所述原始数据的完整性。
本实施例提供的方法可以应用于提供原始数据的数据节点。若所述原始数据为存储到区块链中的目标数据(例如,交易数据和/或各种业务服务的业务数据)的存证数据,则该数据节点还可区块链网络的记账节点中。记账节点可以接收在区块链网络中广播的目标数据及目标数据的存证数据。
在一些实施例中,所述存证数据可为用于指示对应用于是所述目标数据的存入者的数据。在一些实施例中,所述存证数据可包括:所述目标数据的提供用户的用户信息。在还有一些实施例中,所述存证数据还可包括:所述目标数据的数据属性。例如,该数据属性可包括:该目标数据的数据类型、或,目标数据所对应的业务等。
在另一些实施例中,所述存证数据还包括:存证的时间戳。
在一些实施例中,所述存证数据还可包括:目标数据的hash值,目标数据的hash值可以用于目标数据的完整性验证。
在本实施例中,所述原始数据为明文数据,即未加密的数据,该原始数据是可以直接提出信息的数据。
所述原始数据可以以文件的形式存储,则所述原始数据可为一个或多个原文件。利用加密密钥对原始数据进行加密。该加密密钥可为各种类型的加密算法用于加密所述原文件的。将原始数据加密之后就形成了加密数据,例如,加密文件。在本实施例中,会将所述加密数据进行分割,分割至少两个加密分块。
在一些实施例中,所述步骤s103可包括以下方式之一:
方式一:按照预定数据量,将所述加密数据分割为n个加密分块,其中,n个加密分块中,至少前n-1个加密分块的实际数据量等于所述预定数据量,最后一个所述加密分块的实际数据量小于或等于所述预定数据量;
方式二:按照所述原始数据的m个部分之间的关联关系,将所述加密数据分为m个加密分块。m个部分存储有不同类型的数据。所述m个部分可以是按照原始数据的分割符确定,例如,以文本文件为例,m个部分之间的分割符可为段落标记。再例如,利用关键词提取方法获得各个段落的主旨,将主旨相同的数据划分到一个部分,并划入到同一个加密分块中。
n和m的取值都不小于2的正整数。采用方式二时,不同的加密块对应的原始数据的数据量不同。
在获得各个加密分块之后,对各加密分块进行hash运算,得到分块hash值。此处的对原始数据进行hash运算和对加密分块进行hash运算,可以采用相同的hash算法,也可以使用不同的hash算法。在本实施例中,为了进一步提升存储到区块链上数据的可靠性,数据hash值和分块hash值为采用不同的hash算法得到的。
在一些实施例中,数据节点本地存储有hash算法库,在需要进行hash运算时,按照一定的选择策略从所述hash算法库中选择hash算法,例如,基于随机算法,从所述hash算法库中随机选择hash算法。再例如,根据轮询算法,结合前一次采用的hash算法,从hash算法库中选择出前一次采用的hash算法的后一个hash算法。
在一些实施例中,所述方法还包括:
根据所述数据节点当前所在网络环境的安全等级,从所述hash算法库中选择出于所述安全等级相适配的hash算法。
检测到数据节点当前连接在公共网络中,安全等级为第一安全等级;检测到数据节点当前连接在私有网络中,安全等级为第二安全等级。第一安全等级低于第二安全等级。
若安全等级为第一安全等级,则从hash算法库中选择出第一破解难度的hash算法,若安全等级为第二安全等级,则从hash算法库中选择第二破解难度的hash算法。第一破解难度高于第二破解难度。
对原始数据进行加密使用的加密算法可为各种加密算法,例如,可以采用对称加密算法,或,非对称加密算法。所述加密算法包括但不限于:数据加密算法(dataencryptionalgorithm,dea)、三重数据加密算法(tripledataencryptionalgorithm,tdea)、及高级加密标准(英语:advancedencryptionstandard,aes)。
一些实施例中,所述加密算法可为数据节点与区块链网络预先协商的加密算法,则此时,不用将所述加密算法的算法信息在发送加密分块时发送给所述区块链网络。
所述加密密钥的密钥信息,包括但不限于以下信息:
所述加密密钥本身,如此,区块链网络接收到密钥信息就知道了加密密钥本身;
所述加密密钥的密钥标识,区块链网络接收到加密密钥之后,可以基于密钥标识查询该加密密钥;
所述数据节点的用户信息,该用户信息可以唯一指示加密密钥。例如,采用非对称加密,用于利用私钥进行原始数据的加密,公钥是公开在区块链网络中的,如此,该用户信息可以方便区块链网络查询确定解密加密分块的解密密钥。
在一些实施例中,在步骤s105中所述加密分块可以按照其对应的数据在原始数据中的排序进行排序,为了进一步减少数据在传输过程中被窃取的现象,所述加密分块按照预设算法进行顺序的打乱;所述步骤s105是打乱之后发送到区块链网络。若是按照预设废进行加密分块顺序的打乱,可以由数据节点预先与区块链网络进行协商,也可以由数据节点自行决定,然后将预设算法告知区块链网络即可。所述加密分块都有分块标识,所述分块标识可包括:指示加密分块的顺序的序号。在本实施例中,所述加密分块是在打乱之后顺序编号的。若加密分块未打乱直接编号,则区块链网络接收到各个加密分块之后,可以按照加密分块的序号进行数据组合,还原出原始数据。若加密分块被打乱之后,则需要根据预设算法还原出加密分块的正确顺序之后,再进行组合,才能还原出原始文件。
在一些实施例中,所述步骤s105可包括:将所述加密分块至少分为两条不同的路由传输到区块链网络,如此加大了非法用户同时获得所有加密分块的现象,从而增大非法用户破解加密数据的难度。
所述数据hash值用于整个原始数据的完整性验证,分块hash值用于加密分块的完整性验证。
总之,在本实施例中同时利用数据加密、数据分块技术、hash算法及区块链技术,提高了数据的可靠性和安全性。
在一些实施例中,所述步骤s105可包括:
按照预设数据格式,将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值组合,一起发送给所述区块链网络。
在一些实施例中,所述方法还包括:
数据节点预先与区块链网络的管理节点动态协商所述预设数据格式。
如此在不同的时刻,预设数据格式可能不同。
将数据hash值、密钥信息、加密分块及分块hash值按照预设数据格式组合,可以方便区块链网络在将数据存储到区块链上之前,还原出所述原始数据及对数据进行完整性验证等。
在一些实施例中,所述方法还包括:从加密算法库中选择加密算法,并确定所述加密密钥。例如,数据节点本地配置或远程配置有加密算法数据库,可以从加密算法数据库中按照选择策略选择当前使用的加密算法。此处的选择策略可以参照前述hash算法的选择策略。
所述步骤s105可包括:
将所述数据hash值、所述加密密钥的密钥信息,、所述加密算法的算法信息、所述加密分块及分块hash值,一起发送所述区块链网络。
由于在本实施例中,是由数据库节点自身决定的加密算法,则数据库节点还会将算法信息告知区块链网络。
在一些实施例中,所述算法信息包括但不限于以下之一:
所述加密算法的名称;
所述加密算法的算法序号。
如图2所示,本发明实施例还提供一种数据存储方法,包括:
步骤s201:接收数据hash值、加密密钥的密钥信息、加密分块及分块hash值;
步骤s202:基于所述分块hash值对所述加密分块进行分块完整性验证;
步骤s203:基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块;
步骤s204:组合解密分块,获得解密数据;
步骤s205:基于所述数据hash值,对所述解密数据进行数据的整性验证;
步骤s206:在所述分块完整性验证及数据完整性验证均通过后,将所述加密分块存储到区块链上。
本实施例提供的方法可应用于区块链网络的区块链节点中,例如,区块链的记账节点中。
在本实施例中区块链节点接收到的广播的数据hash值、加密密钥的密钥信息、加密分块及分块hash值。
首先会利用分块hash值进行加密分块的完整性验证。
在一些实施例中,所述区块链节点的计算资源足够,则可以采用并发线程并行执行多个加密分块的分块完整性验证。
在另一些实施例中,所述区块链节点的计算资源不够时,可以采用单一线程逐步对每一个加密分块进行分块完整性验证。
在一些实施例中,不管采用哪种方式,若发现一个加密分块的完整性验证不通过,则可以停止后续操作,告知发送加密分块的数据节点,数据遭受到破坏,若需要数据上链(存储到区块链),需要重新处理。
在另一些实施例中,会记录下哪些加密分块遭到破坏,会告知数据节点重新发送遭受到破坏的加密分块。
所述区块链节点可以在所有加密分块均通过完整性验证之后,再利用加密密钥的密钥信息所对应的解密密钥进行数据解密,获得解密数据。
然后对解密数据,利用数据hash值进行加密文件进行完整性验证。若各加密分块未遭受到破坏,则利用解密密钥解密出的解密数据应该与原始数据一致,区块链利用对应的hash算法对解密数据进行hash运算后得到一个hash值,该hash值应该与数据节点发送的hash值一致,若不一致可认为数据完整性验证不通过。
在各加密分块都通过分块完整性验证之后,再进行解密,可以减少区块链节点不必要的数据处理操作。
在一些实施例中,所述方法还包括:接收加密算法的算法信息;
所述基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块,包括:
根据所述算法信息,基于与所述加密算法对应的解密算法及所述加密密钥的密钥信息解密所述加密分块得到所述解密分块。
在本实施例中加密分块使用的加密算法可为动态设置的,则区块链节点还会接收到算法信息,该算法信息可以用于区块链节点确定加密算法对应的解密算法。如此,基于密钥信息和解密算法,对各加密分块进行解密,得到解密分块。
在一些实施例中,所述方法还包括:
若加密分块是打乱之后发送到区块链网络,按照预设算法,组合各个解密分块得到解密文件。
所述加密分块都有分块标识,所述分块标识可包括:指示加密分块的顺序的序号。在本实施例中,所述加密分块是在打乱之后顺序编号的。若加密分块未打乱直接编号,则区块链网络接收到各个加密分块解密之后,可以按照解密分块中分块标识的序号进行数据组合,得到组合后的解密文件。
若加密分块被打乱之后,则需要根据预设算法还原出加密分块的正确顺序之后,再按照还原的顺序进行解密分块的组合,得到所述解密数据。
在一些实施例中,所述分块标识还可包括:原始数据的标识。该原始数据的标识,可以用于区块链网络识别该分块属于哪一个原始数据。故在本实施例中,加密分块的分块标识至少包括两个部分:一个是原始数据的标识及加密分块的序号。
在一些实施例中,若数据完整性验证和分块完整性验证的其中任意一个未通过,均向对应的数据节点发送异常提示;该异常提示,可以用于触发数据节点重新提交需要存储的数据。
在一些实施例中,该原始数据可为:需要存储在区块链上的目标数据的存证数据;该目标数据不限于是存证数据。
如图3所示,本实施例提供一种数据存储装置,包括:
第一hash模块301,用于对原始数据进行hash运算,得到数据hash值;
加密模块302,用于利用加密密钥对所述原始数据进行加密,得到加密数据;
分割模块303,用于对所述加密数据进行分割,获得加密分块;
第二hash模块304,用于对加密分块进行hash运算,得到分块hash值;
发送模块305,用于将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值发送给区块链网络,其中,所述分块hash值用于区块链网络验证所述加密分块的完整性;所述加密密钥用于解密加密分块恢复出所述原始数据;所述加密密钥的密钥信息与所述数据hash值共同用于验证所述原始数据的完整性。
在一些实施例中,所述发送模块305,具体用于按照预设数据格式,将所述数据hash值、所述加密密钥的密钥信息、所述加密分块及所述分块hash值组合,一起发送给所述区块链网络。
在一些实施例中,所述加密模块302,具体用于从加密算法库中选择加密算法,并确定所述加密密钥;所述发送模块305,具体用于将所述数据hash值、所述加密密钥的密钥信息,、所述加密算法的算法信息、所述加密分块及分块hash值,一起发送所述区块链网络。
在一些实施例中,所述原始数据可为:存储在区块链上的目标数据的存证数据。
如图4所示,本实施例提供一种数据存储装置,包括:
接收模块401,用于接收数据hash值、加密密钥的密钥信息、加密分块及分块hash值;
第一校验模块402,用于基于所述分块hash值对所述加密分块进行分块完整性验证;
解密模块403,用于基于所述加密密钥的密钥信息,解密所述加密分块得到解密分块;
组合模块404,用于组合解密分块,获得解密数据;
第二验证模块405,用于基于所述数据hash值,对所述解密数据进行数据的整性验证;
区块链模块406,用于在所述分块完整性验证及数据完整性验证均通过后,将所述加密分块存储到区块链上。
在一些实施例中,所述接收模块401,还用于接收加密算法的算法信息;
所述解密模块403,具体用于根据所述算法信息,基于与所述加密算法对应的解密算法及所述加密密钥的密钥信息解密所述加密分块得到所述解密分块。
以下结合上述任意实施例提供几个具体示例:
示例一:
本发明提供了一种数据存储方法,包括:
从预置的hash算法库中选择算法对原文件进行hash运算,得到原文件的hash值;
从预置的加密算法库中选择加密算法对原文件加密;
把加密文件分块得到多个加密分块;在本地保存加密分块;
从预置的hash算法库中选择hash算法对需要分块数据进行hash运算,得到每个加密分块的hash值;
把原文件hash值和分块加密分块的hash组合成区块链格式数据,一起存储到区块链中。
本示例通过使用区块链,加密,和分块存储技术相结合,保证了数据存储的高容错性,低成本性,不可篡改,高安全,进一步实现了在低成本的经济效益下提高了对数据存储的高安全和数据访问高用性,以及数据的可性度。
如图6所示,本发明还提供了一种数据存储装置,包括:
加密单元,用于从预置的加密和分块算法中选取合适算法对文件进行加密;
hash单元,用于从预置的算法中选取hash和加密算法对多个密文分块计算hash和加密,得到密文的hash和加密值;
分块单元,将加密文件分为多个加密分块;
组合单元,用于把原文件的hash值和分块加密文件的hash值组合成区块链要求的数据格式;
校验单元,用于通过解密利用区块链区块的hash值来判断提供的文件是否是原来文件;存储单元,用于把数据存储在分布式区块链系统结构中。
本示例通过区块链技术加存证分布存储结合加密技术的使用,解决了原来存储在本地文件和数据库中的加密方法和密钥可能导致数据被盗取和信息丢失的问题,通过把加密的过程方法和密钥信息存储在区块链上,利用分布的网络来加强信息的安全,保证信息避免被非法篡改。通过网络的计算效益,进一步保障了数据低成本的高可用性和广泛的公信力。
示例2:
根据本发明的实施例的数据存储方法的如图5所示包括:
从数据提供方取得原始数据后,首先,步骤s01,从预置的加密算法中选择算对原文件进行加密得到加密文件。加密算法包括但不限于des,3des,aes等。并用s03的hash算法对原文件计算hash值。
随后,步骤s02,对加密后得到的文件进行分块,划分成不同的加密分块。
步骤s03,用hash算法对加密分块加密数据库计算出分块hash值,
随后步骤s04,对s01计算的原文件hash值,以及s03步骤计算的加密分块hash值组合成区块链要求的数据格式。
接着步骤s05,对形成的区块数据保存在区块链以及本地存储中。
步骤s063用于两处,一是通过读取区块的hash数据验证原文件是否一致;二是读取区块的解密和分块信息来恢复出原始文件。
根据本发明的实施例,保存存证数据的机构是分散使用区块链的各个机构。通过使用区块链结合的加密和分块存储这一技术,在数据生成时,即通过前述一系列操作进行加密,并将相关代码数值保存分散的各个组织内。
以上步骤并不对存储都是加密情况下的数据,加密方法和密钥值授权给合适的相关方,从数据提供方的角度来说,对于电子原始数据的处理过程属于黑盒方式,用户只负责提交需要存证的原始数据,由存证组件对电子原始数据加密和保存,生成最终的“区块加密数据”用以电子数据存证。整个过程对数据提供方和无关第三人都是封闭的,保证了存证环境及存证过程安全性。并通过区块链分布存储有效杜绝数据提供方恶意篡改存证数据的可能
而当使用人需要这些数据作为公证证据或司法鉴定材料时,可以通过授权的组织调用合适的接口对提供的文件进行验证,通过预设的对比程序,检验出文件是否被篡改。另一方面也可以通过合适的步骤把分块数据重新合成原始文件提供给授权的组织使用。
根据本发明的另一个实施例,还提供了一种数据存证装置,其结构如图2所示,包括加密运算单元1、hash运算单元2、分块单元3、区块链组合单元4,存储单元5和解密验证单元6.
本发明的整个过程对数据提供方和无关第三人都是封闭的,保证了取证环境及存证过程的清洁性,同时有利用区块链分布式存储数据技术效杜绝数据提供方恶意篡改存证数据的可能。数据文件经过加密和分块存储,只有有权向组织访问,可以充分保证用户的隐私
本实施例还提供一种区块链节点,包括:
网络接口;
存储器;
处理器,分别与所述网络接口及所述存储器连接,用于通过计算机程序的执行,控制所述网络接口的通信及所述存储器的信息存储,并实现前述一个或多个实施例提供的数据存储方法,例如,如图1、图2及图5所示的方法中的一个或多个。
本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序;所述计算机程序被处理器执行后,能够实现前述一个或多个实施例提供的数据存储方法,例如,如图1、图2及图5所示的方法中的一个或多个。该计算机可读存储介质可为永久性存储介质,该永久性存储介质也可以称之为非瞬间存储介质,典型的非瞬间存储介质包括但不限于闪存。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。