[發(fā)明專利]一種文件的散列值的計算方法及裝置有效
| 申請?zhí)枺?/td> | 201410652575.1 | 申請日: | 2014-11-17 |
| 公開(公告)號: | CN104394205A | 公開(公告)日: | 2015-03-04 |
| 發(fā)明(設(shè)計)人: | 周星 | 申請(專利權(quán))人: | 廣聯(lián)達軟件股份有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 北京柏杉松知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11413 | 代理人: | 馬敬;項京 |
| 地址: | 100193 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 文件 散列值 計算方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及云存儲系統(tǒng),特別涉及一種文件的散列值的計算方法及裝置。
背景技術(shù)
系統(tǒng)開發(fā)者在設(shè)計云存儲系統(tǒng)時,服務(wù)器會對用戶上傳的文件進行散列計算。其中,計算散列值主要在于兩個目的:其一,對比服務(wù)器所計算出的散列值和文件上傳終端所上報的散列值,以確認文件在上傳過程中的正確性,其二,在實際存儲文件時,對比已經(jīng)存在的散列值,達到去重的目的。
其中,對于云存儲系統(tǒng)的文件上傳功能,開發(fā)者通常將程序設(shè)計為邊上傳文件,邊計算所上傳過來的部分文件數(shù)據(jù)的散列值,這樣在文件上傳完畢后,便能夠立即拿到散列值。實際應(yīng)用中,通常采用將散列值計算方法封裝到j(luò)ava的java.security.MessageDigest類中,然后調(diào)用該java.security.MessageDigest類的方式來實時計算上傳文件的散列值。
但是,現(xiàn)有文件上傳過程中,經(jīng)常會遇到如下問題:由于終端的網(wǎng)絡(luò)不穩(wěn)定,導(dǎo)致文件上傳中斷(即出現(xiàn)文件斷點),相應(yīng)的,服務(wù)器在檢測到文件上傳中斷時會丟棄已經(jīng)計算出的已上傳的部分文件的散列值,并在該文件續(xù)傳時,從頭計算該文件的散列值,這無疑導(dǎo)致計算重復(fù),浪費大量的計算資源。
發(fā)明內(nèi)容
基于上述問題,本發(fā)明實施例公開了一種文件的散列值的計算方法及裝置,以避免文件上傳過程中文件的散列值的重復(fù)計算,從而避免計算資源的浪費。技術(shù)方案如下:
第一方面,本發(fā)明實施例提供了一種文件的散列值的計算方法,應(yīng)用于云存儲系統(tǒng)的服務(wù)器,所述方法包括:
在基于java.security.MessageDigest類計算當前上傳文件的散列值的過程中,檢測是否出現(xiàn)文件上傳斷點;
當檢測到文件上傳斷點時,提取java.security.MessageDigest類的對象中的各個關(guān)鍵字段的當前的字段值;其中,所述關(guān)鍵字段為計算當前上傳文件的散列值所需要的字段;
按照預(yù)設(shè)編碼方式,對所述各個關(guān)鍵字段的字段值進行編碼處理,并將各個編碼結(jié)果拼接成目標字符串;
保存所述目標字符串;
當檢測到當前上傳文件發(fā)生續(xù)傳時,獲取所述目標字符串,并將所述目標字符串還原為各個關(guān)鍵字段的字段值;
將所還原的各個關(guān)鍵字段值恢復(fù)到j(luò)ava.security.MessageDigest類的對象中,以繼續(xù)計算當前上傳文件的散列值。
可選的,所述各個關(guān)鍵字段包括:緩沖區(qū)、中間狀態(tài)、偏移量和中間散列值。
可選的,所述按照預(yù)設(shè)編碼方式,對所述各個關(guān)鍵字段的字段值進行編碼處理,并將各個編碼結(jié)果拼接成目標字符串,包括:
按照ASCII編碼方式,對所述各個關(guān)鍵字段的字段值進行編碼處理,并將各個編碼結(jié)果拼接成目標字符串。
可選的,通過java反射技術(shù),提取java.security.MessageDigest類的對象中的各個關(guān)鍵字段的當前的字段值;
相應(yīng)的,通過java反射技術(shù),將所還原的各個關(guān)鍵字段值恢復(fù)到j(luò)ava.security.MessageDigest類的對象中。
第二方面,本發(fā)明實施例提供了一種文件的散列值的計算裝置,應(yīng)用于云存儲系統(tǒng)的服務(wù)器,所述裝置包括:
斷點檢測模塊,用于在基于java.security.MessageDigest類計算當前上傳文件的散列值的過程中,檢測是否出現(xiàn)文件上傳斷點;
字段值提取模塊,用于當檢測到文件上傳斷點時,提取java.security.MessageDigest類的對象中的各個關(guān)鍵字段的當前的字段值;其中,所述關(guān)鍵字段為計算當前上傳文件的散列值所需要的字段;
字段值處理模塊,用于按照預(yù)設(shè)編碼方式,對所述各個關(guān)鍵字段的字段值進行編碼處理,并將各個編碼結(jié)果拼接成目標字符串;
保存模塊,用于保存所述目標字符串;
字段值還原模塊,用于當檢測到當前上傳文件發(fā)生續(xù)傳時,獲取所述目標字符串,并將所述目標字符串還原為各個關(guān)鍵字段的字段值;
計算恢復(fù)模塊,用于將所還原的各個關(guān)鍵字段值恢復(fù)到j(luò)ava.security.MessageDigest類的對象中,以繼續(xù)計算當前上傳文件的散列值。
可選的,所述各個關(guān)鍵字段包括:緩沖區(qū)、中間狀態(tài)、偏移量和中間散列值。
可選的,所述字段值處理模塊,包括:
按照ASCII編碼方式,對所述各個關(guān)鍵字段的字段值進行編碼處理,并將各個編碼結(jié)果拼接成目標字符串。
可選的,所述字段值提取模塊,具體用于:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣聯(lián)達軟件股份有限公司,未經(jīng)廣聯(lián)達軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410652575.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





