專利名稱:一種資源驗證方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及資源管理技術(shù),特別是涉及一種資源驗證方法及裝置。
背景技術(shù):
隨著計算機(jī)應(yīng)用以及軟件應(yīng)用程序的飛速發(fā)展,應(yīng)用于不同應(yīng)用環(huán)境、實現(xiàn)不同功能的程序不斷涌現(xiàn)。隨著現(xiàn)有網(wǎng)絡(luò)的發(fā)展,通過網(wǎng)絡(luò)傳輸各種信息、通過網(wǎng)絡(luò)實現(xiàn)資源共享,已經(jīng)成為人們獲取信息資源必不可少的途徑。很多用戶會根據(jù)自身需求,在需要時加載相應(yīng)的資源,完成所需的功能,那么,所加載的資源是否正確、是否有效就變得非常重要,如果所加載的資源錯誤或無效,就會導(dǎo)致用戶終端不能正常完成所需功能,因此,進(jìn)行資源驗證是非常必要的。目前,在web flash應(yīng)用中,用戶加載所需資源時,只是通過所要加載資源的版本號對當(dāng)前加載資源進(jìn)行驗證,雖然能確定當(dāng)前加載的資源是否為用戶需要的資源,但不能對資源的完整性進(jìn)行驗證,這樣,可能會影響所加載資源的后續(xù)使用。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種資源驗證方法及裝置,能驗證資源的完整性。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供了一種資源驗證方法,包括需要加載資源時,從緩存或服務(wù)器中獲取所需資源;從當(dāng)前獲取的資源的頭位置和尾位置分別提取一定長度的信息計算密鑰;將計算出的密鑰與預(yù)設(shè)的參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。上述方案中,所述緩存為內(nèi)存緩存(memory_cache)、或動畫緩存(flash_cache)、 或瀏覽器緩存。上述方案中,所述資源從服務(wù)器獲取時,該方法進(jìn)一步包括將當(dāng)前獲取的資源根據(jù)資源類型存儲于mem0ry_cache、或flash_cache、或瀏覽器緩存中。上述方案中,所述從當(dāng)前獲取的資源的頭位置和尾位置分別提取一定長度的信息為從頭位置提取的信息長度大于尾位置提取的信息長度。上述方案中,該方法進(jìn)一步包括預(yù)先設(shè)置包括各個資源參考密鑰的配置表,其中,每個資源唯一對應(yīng)一個參考密鑰。上述方案中,所述驗證當(dāng)前資源是否有效為所計算出的密鑰與配置表中相應(yīng)資源的參考密鑰一致,當(dāng)前所獲取的資源有效。本發(fā)明還提供了一種資源驗證裝置,包括資源獲取單元、資源密鑰計算單元、資源驗證單元;其中,所述資源獲取單元,用于在需要加載資源時,從緩存或服務(wù)器中獲取所需資源;所述資源密鑰計算單元,用于從當(dāng)前所獲取的資源的頭位置和尾位置分別提取一定長度的信息進(jìn)行密鑰計算;所述資源驗證單元,用于將計算出的密鑰與參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。其中,所述資源獲取單元從memoryjache、或flash_CaChe、或瀏覽器緩存獲取所需資源。所述資源密鑰計算單元從頭位置提取的信息長度大于尾位置提取的信息長度。本發(fā)明提供的資源驗證方法及裝置,在對所獲取的資源進(jìn)行驗證時,從資源的頭位置和尾位置提取一定長度的信息進(jìn)行密鑰計算,將計算出的密鑰與參考密鑰進(jìn)行比較, 驗證當(dāng)前獲取的資源是否有效。由于計算密鑰時同時提取資源的頭尾信息參與計算,因此, 能保證對資源的完整性進(jìn)行驗證。進(jìn)一步的,由于進(jìn)行比較的參考密鑰與相應(yīng)的資源版本號是一一對應(yīng)的,例如參考密鑰A對應(yīng)的版本號為ver 1.0,參考密鑰B對應(yīng)的版本號為ver 2.0,依次類推,這樣, 不僅可以根據(jù)當(dāng)前所計算密鑰與參考密鑰是否一致,來確定當(dāng)前所獲取的資源是否為最新版本、是否有效;也可以根據(jù)當(dāng)前所計算密鑰找到匹配的參考密鑰,來進(jìn)一步確定當(dāng)前獲取的資源對應(yīng)的資源版本號,如此,可實現(xiàn)對資源版本號的管理。另外,本發(fā)明在需要加載資源時,可以通過多種不同途徑如從各類緩存、從服務(wù)器等獲取所需要的資源,如此,使得資源獲取更為靈活、方便、易于實現(xiàn)。
圖1為本發(fā)明資源驗證方法的實現(xiàn)流程示意圖;圖2為本發(fā)明資源驗證方法一實施例的實現(xiàn)流程示意圖;圖3為本發(fā)明資源驗證裝置的組成結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明的基本思想是需要加載資源時,從緩存或服務(wù)器中獲取所需資源;對所獲取的資源進(jìn)行驗證時,從資源的頭位置和尾位置分別提取一定長度的信息進(jìn)行密鑰計算,將計算出的密鑰與參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。這里,所述緩存包括不同類型的緩存,如mem0ry_CaChe、flashjache、瀏覽器緩存。所述從資源頭位置和尾位置分別提取的信息長度一般不同,考慮到計算效率和準(zhǔn)確度等問題,通常從頭位置提取的信息長度大于尾位置提取的信息長度。所述參考密鑰是預(yù)先設(shè)置的,每個資源都對應(yīng)一個密鑰,可將所有資源分別對應(yīng)的參考密鑰形成一個配置表進(jìn)行存儲,便于查找比對;進(jìn)一步的,對于每個資源不同的版本,也可以將每個資源不同版本對應(yīng)的參考密鑰放置于配置表中,以便于在需要時進(jìn)行匹配比較,例如配置表中包括資源X和資源Y,對于資源X又進(jìn)一步包括資源X的ver 1.0版本和ver 2. 0版本。本發(fā)明的資源驗證方法如圖1所示,包括以下步驟步驟101 需要加載資源時,從緩存或服務(wù)器中獲取所需資源;其中,所述緩存至少包括memoryjache、flash_cache,以及瀏覽器緩存;所述資源可以是文件、圖片、應(yīng)用程序等等。
步驟102 從當(dāng)前所獲取的資源的頭位置和尾位置分別提取一定長度的信息進(jìn)行密鑰計算;通常,從頭位置提取的信息長度大于尾位置提取的信息長度,比如對于大于15k 的文件,較佳的,提取頭位置的IOk字節(jié)、尾位置的證字節(jié)進(jìn)行密鑰計算,當(dāng)然,實際應(yīng)用中也可以采用其它長度。對于密鑰計算,較佳的,采用md5算法,當(dāng)然,實際應(yīng)用中也可以采用其它密鑰計算方法。在具體應(yīng)用中,可采用下述函數(shù)進(jìn)行密鑰計算,其中密鑰計算方法采用md5算法static public function md5(bytes:ByteArray):String{bytes, position = 0 ;if (bytes, length < 1024*15)return MD5. hashBytes(bytes);var byte:ByteArray = new ByteArray();bytes. readBytes(byte,0,10*1024);bytes, position = bytes, length-5氺1024 ;bytes. readBytes (byte, byte, length, 0);return MD5. hashBytes (byte);}步驟103 :將計算出的密鑰與參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效;本方法中,會預(yù)先設(shè)置包括每個資源參考密鑰的配置表,參考密鑰通常是在產(chǎn)品發(fā)布時、采用一定密鑰計算方法如md5算法計算的,相應(yīng)的,步驟102中對當(dāng)前所獲取資源進(jìn)行密鑰計算時,需要采用與參考密鑰相同的密鑰計算方法。其中,每個資源唯一對應(yīng)一個參考密鑰,如果一個資源有多種版本,那么,每個資源的每個版本唯一對應(yīng)一個參考密鑰。進(jìn)一步的,本步驟中如果驗證當(dāng)前獲取的資源有效、且當(dāng)前獲取的資源是從服務(wù)器獲取的,則可以存儲當(dāng)前獲取的資源到緩存中,以便下次需要加載時直接獲取,具體的, 可根據(jù)資源類型將所獲取的資源存儲于memory^ache、或flaSh_CaChe、或瀏覽器緩存。圖1所示的流程在終端執(zhí)行;本發(fā)明主要適用于web flash應(yīng)用,當(dāng)然,如果有其他類似的應(yīng)用環(huán)境,如至少包括mem0ry_cache、flash_cache、瀏覽器緩存的應(yīng)用環(huán)境中,本發(fā)明同樣適用。圖2為本發(fā)明資源驗證方法一實施例的實現(xiàn)流程示意圖,本實施例中,在終端中預(yù)先設(shè)置并存儲有包括各個資源參考密鑰的配置表,所述參考密鑰分別是在各個資源發(fā)布時采用指定密鑰計算方法計算的。如圖2所述,本實施例的資源驗證方法包括以下步驟步驟201 202:需要加載資源時,判斷是否使用緩存中的資源,如果使用,則執(zhí)行步驟203 ;否則,執(zhí)行步驟206 ;步驟203 :memory_cache中是否有所需資源,如果有,則獲取所需資源,之后執(zhí)行步驟207;否則,執(zhí)行步驟204;步驟204 :flash_cache中是否有所需資源,如果有,則獲取所需資源,之后執(zhí)行步驟207 ;否則,執(zhí)行步驟205 ;步驟205 瀏覽器緩存中是否有所需資源,如果有,則獲取所需資源,之后執(zhí)行步驟207 ;否則,執(zhí)行步驟206 ;
步驟206 從服務(wù)器獲取并下載所需資源,如果獲取到,則執(zhí)行步驟207 ;如果未獲取到,則執(zhí)行步驟209;步驟207 從當(dāng)前所獲取的資源的頭位置和尾位置分別提取一定長度的信息,計算當(dāng)前所獲取資源的密鑰;步驟208 將所計算出的密鑰與配置表中的參考密鑰進(jìn)行比較,驗證當(dāng)前所獲取的資源是否有效,如果驗證通過,則執(zhí)行步驟210,如果驗證錯誤,則執(zhí)行步驟209 ;這里,如果所計算出的密鑰與配置表中相應(yīng)資源的參考密鑰一致,則驗證通過,當(dāng)前所獲取的資源有效;否則,驗證錯誤,當(dāng)前所獲取的資源無效。步驟209 判斷是否需要重試,也就是說是否需要重新獲取一次所需資源,如果需要,則返回步驟206 ;否則,結(jié)束當(dāng)前處理流程。步驟210 存儲當(dāng)前所獲取的資源,之后結(jié)束當(dāng)前處理流程;這里,所述存儲是指將從服務(wù)器獲取的資源根據(jù)資源類型存儲于相應(yīng)緩存中,比如存儲于mem0ry_cache、或flaSh_cache、或瀏覽器緩存中,以便下次需要加載時直接從緩存中獲取。相應(yīng)的,如果當(dāng)前資源本身已經(jīng)是從某個緩存中獲取的,本步驟可以省略,無需再次存儲獲取的資源。為實現(xiàn)上述方法,本發(fā)明還提供了一種資源驗證裝置,包括資源獲取單元、資源密鑰計算單元、資源驗證單元;其中,所述資源獲取單元,用于在需要加載資源時,從緩存或服務(wù)器中獲取所需資源;其中,所述從緩存獲取為從memoryjache、或flash_CaChe、或瀏覽器緩存獲取所需資源;所述資源密鑰計算單元,用于從當(dāng)前所獲取的資源的頭位置和尾位置分別提取一定長度的信息進(jìn)行密鑰計算;所述資源驗證單元,用于將計算出的密鑰與參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種資源驗證方法,其特征在于,該方法包括需要加載資源時,從緩存或服務(wù)器中獲取所需資源;從當(dāng)前獲取的資源的頭位置和尾位置分別提取一定長度的信息計算密鑰;將計算出的密鑰與預(yù)設(shè)的參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述緩存為內(nèi)存緩存(mem0ry_cache)、或動畫緩存(flash_CaChe)、或瀏覽器緩存。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述資源從服務(wù)器獲取時,該方法進(jìn)一步包括將當(dāng)前獲取的資源根據(jù)資源類型存儲于memoryjache、或flaSh_CaChe、或瀏覽器緩存中。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,所述從當(dāng)前獲取的資源的頭位置和尾位置分別提取一定長度的信息為從頭位置提取的信息長度大于尾位置提取的信息長度。
5.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于,該方法進(jìn)一步包括預(yù)先設(shè)置包括各個資源參考密鑰的配置表,其中,每個資源唯一對應(yīng)一個參考密鑰。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述驗證當(dāng)前資源是否有效為所計算出的密鑰與配置表中相應(yīng)資源的參考密鑰一致,當(dāng)前所獲取的資源有效。
7.一種資源驗證裝置,其特征在于,該裝置包括資源獲取單元、資源密鑰計算單元、資源驗證單元;其中,所述資源獲取單元,用于在需要加載資源時,從緩存或服務(wù)器中獲取所需資源;所述資源密鑰計算單元,用于從當(dāng)前所獲取的資源的頭位置和尾位置分別提取一定長度的信息進(jìn)行密鑰計算;所述資源驗證單元,用于將計算出的密鑰與參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述資源獲取單元從memoryjache、或 flaSh_CaChe、或瀏覽器緩存獲取所需資源。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述資源密鑰計算單元從頭位置提取的信息長度大于尾位置提取的信息長度。
10.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,每個資源唯一對應(yīng)一個參考密鑰。
全文摘要
本發(fā)明公開了一種資源驗證方法,包括需要加載資源時,從緩存或服務(wù)器中獲取所需資源;從當(dāng)前獲取的資源的頭位置和尾位置分別提取一定長度的信息計算密鑰;將計算出的密鑰與預(yù)設(shè)的參考密鑰進(jìn)行比較,驗證當(dāng)前獲取的資源是否有效。本發(fā)明還同時公開了一種資源驗證裝置,采用本發(fā)明能驗證資源的完整性,并能完成資源版本號的管理。
文檔編號G06F21/24GK102479306SQ20101056612
公開日2012年5月30日 申請日期2010年11月23日 優(yōu)先權(quán)日2010年11月23日
發(fā)明者劉超俊, 文錦祥, 溫光輝 申請人:騰訊科技(深圳)有限公司