一种文件的散列值的计算方法及装置制造方法及图纸

技术编号:11112026 阅读:266 留言:0更新日期:2015-03-05 12:47
本发明专利技术实施例公开了一种文件的散列值的计算方法及装置,该方法包括:在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,检测是否出现文件上传断点;当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;按照预设编码方式,对各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串;保存目标字符串;当检测到当前上传文件发生续传时,获取目标字符串,并将目标字符串还原为各个关键字段的字段值;将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。可见,通过本方案,可以避免文件的散列值的重复计算,从而避免计算资源的浪费。

【技术实现步骤摘要】

本专利技术涉及云存储系统,特别涉及一种文件的散列值的计算方法及装置
技术介绍
系统开发者在设计云存储系统时,服务器会对用户上传的文件进行散列计算。其中,计算散列值主要在于两个目的:其一,对比服务器所计算出的散列值和文件上传终端所上报的散列值,以确认文件在上传过程中的正确性,其二,在实际存储文件时,对比已经存在的散列值,达到去重的目的。其中,对于云存储系统的文件上传功能,开发者通常将程序设计为边上传文件,边计算所上传过来的部分文件数据的散列值,这样在文件上传完毕后,便能够立即拿到散列值。实际应用中,通常采用将散列值计算方法封装到java的java.security.MessageDigest类中,然后调用该java.security.MessageDigest类的方式来实时计算上传文件的散列值。但是,现有文件上传过程中,经常会遇到如下问题:由于终端的网络不稳定,导致文件上传中断(即出现文件断点),相应的,服务器在检测到文件上传中断时会丢弃已经计算出的已上传的部分文件的散列值,并在该文件续传时,从头计算该文件的散列值,这无疑导致计算重复,浪费大量的计算资源。
技术实现思路
基于上述问题,本专利技术实施例公开了一种文件的散列值的计算方法及装置,以避免文件上传过程中文件的散列值的重复计算,从而避免计算资源的浪费。技术方案如下:第一方面,本专利技术实施例提供了一种文件的散列值的计算方法,应用于云存储系统的服务器,所述方法包括:在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,检测是否出现文件上传断点;当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;其中,所述关键字段为计算当前上传文件的散列值所需要的字段;按照预设编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串;保存所述目标字符串;当检测到当前上传文件发生续传时,获取所述目标字符串,并将所述目标字符串还原为各个关键字段的字段值;将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。可选的,所述各个关键字段包括:缓冲区、中间状态、偏移量和中间散列值。可选的,所述按照预设编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串,包括:按照ASCII编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串。可选的,通过java反射技术,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;相应的,通过java反射技术,将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中。第二方面,本专利技术实施例提供了一种文件的散列值的计算装置,应用于云存储系统的服务器,所述装置包括:断点检测模块,用于在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,检测是否出现文件上传断点;字段值提取模块,用于当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;其中,所述关键字段为计算当前上传文件的散列值所需要的字段;字段值处理模块,用于按照预设编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串;保存模块,用于保存所述目标字符串;字段值还原模块,用于当检测到当前上传文件发生续传时,获取所述目标字符串,并将所述目标字符串还原为各个关键字段的字段值;计算恢复模块,用于将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。可选的,所述各个关键字段包括:缓冲区、中间状态、偏移量和中间散列值。可选的,所述字段值处理模块,包括:按照ASCII编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串。可选的,所述字段值提取模块,具体用于:当检测到文件上传断点时,通过java反射技术,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;其中,所述关键字段为计算当前上传文件的散列值所需要的字段;相应的,所述计算恢复模块,具体用于:通过java反射技术,将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。本方案中,云存储系统的服务器在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,检测是否出现文件上传断点;当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;其中,关键字段为计算当前上传文件的散列值所需要的字段;按照预设编码方式,对各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串;保存目标字符串;当检测到当前上传文件发生续传时,获取目标字符串,并将目标字符串还原为各个关键字段的字段值;将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。可见,通过本方案,在文件续传时无需从头计算文件的散列值,可以避免文件上传过程中文件的散列值的重复计算,从而避免计算资源的浪费。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例所提供的一种文件的散列值的计算方法的流程图。图2为本专利技术实施例所提供的一种文件的散列值的计算装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下本文档来自技高网...

【技术保护点】
一种文件的散列值的计算方法,其特征在于,应用于云存储系统的服务器,所述方法包括:在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,检测是否出现文件上传断点;当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;其中,所述关键字段为计算当前上传文件的散列值所需要的字段;按照预设编码方式,对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字符串;保存所述目标字符串;当检测到当前上传文件发生续传时,获取所述目标字符串,并将所述目标字符串还原为各个关键字段的字段值;将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,以继续计算当前上传文件的散列值。

【技术特征摘要】
1.一种文件的散列值的计算方法,其特征在于,应用于云存储系统的服务
器,所述方法包括:
在基于java.security.MessageDigest类计算当前上传文件的散列值的过程中,
检测是否出现文件上传断点;
当检测到文件上传断点时,提取java.security.MessageDigest类的对象中的各
个关键字段的当前的字段值;其中,所述关键字段为计算当前上传文件的散列
值所需要的字段;
按照预设编码方式,对所述各个关键字段的字段值进行编码处理,并将各
个编码结果拼接成目标字符串;
保存所述目标字符串;
当检测到当前上传文件发生续传时,获取所述目标字符串,并将所述目标
字符串还原为各个关键字段的字段值;
将所还原的各个关键字段值恢复到java.security.MessageDigest类的对象中,
以继续计算当前上传文件的散列值。
2.根据权利要求1所述的方法,其特征在于,所述各个关键字段包括:缓
冲区、中间状态、偏移量和中间散列值。
3.根据权利要求1或2所述的方法,其特征在于,所述按照预设编码方式,
对所述各个关键字段的字段值进行编码处理,并将各个编码结果拼接成目标字
符串,包括:
按照ASCII编码方式,对所述各个关键字段的字段值进行编码处理,并将各
个编码结果拼接成目标字符串。
4.根据权利要求1或2所述的方法,其特征在于,通过java反射技术,提取
java.security.MessageDigest类的对象中的各个关键字段的当前的字段值;
相应的,通过java反射技术,将所还原的各个关键字段值恢复到
java.security.MessageDigest类的对象中。
5.一种文件的散列值的计算装置,其特征在于,应用于云存储系统的服务

\t器,所述装置包括:
断点检测...

【专利技术属性】
技术研发人员:周星
申请(专利权)人:广联达软件股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1