新四季網

一種文件的自校驗方法及系統與流程

2023-10-17 21:36:09


本發明涉及嵌入式系統數據通信領域,特別是一種文件完整性的校驗方法。



背景技術:

隨著嵌入式科技的高速發展,嵌入式產品應用越來越廣泛,比如高速鐵路、通訊設備等,嵌入式開發包括硬體和軟體開發,為了提高開發速度,在嵌入式軟體開發中一般會採用文件系統,將文件和數據保存在文件系統當中,文件系統使用能帶來很多的好處,比如使用簡單方便、API接口豐富、上手和開發速度快,同時文件傳遞也很方便。

但是嵌入式系統有時應用在環境嚴酷的場合,複雜的周圍環境、軟體缺陷等可能導致文件內容被破壞或者改寫,特殊情況下還有可能造成文件系統的損壞。通常,嵌入式系統啟動的時候從文件系統裡面讀取應用程式來執行,如果文件系統內部的應用文件被損壞,那麼可能會造成系統啟動或者運行異常,導致系統不穩定;此外,由於嵌入式系統下的傳輸協議較為簡單,缺乏足夠的容錯機制,在文件更新過程中也有可能發生數據丟失、輸出傳錯等情況,這樣傳輸到文件系統的文件可能已經被改寫,這種損壞的文件是不能使用的,帶來的後果通常不可預知,在目前的嵌入式系統中,一般沒有提供文件完整性校驗方法,不能判斷文件是否是正確可用的;另外,即使文件已經發生損壞,也不能立刻檢測出來,文件的完整性不能得到保障。



技術實現要素:

本發明的目的在於提供一種一種文件的自校驗方法及系統,可以有效解決各種硬體存儲環境中,文件無法判斷文件是否發生了變化的問題,確保文件原始數據的完整性。

為達到上述目的,本發明的解決方案是:

本發明公開了一種文件自校驗方法,所述文件包括原始的文件數據以及增加的文件頭,則自校驗包括以下步驟:

(1)進行文件頭信息校驗,若校驗成功,轉入步驟(2),若校驗失敗,則直接轉入步驟(4);

(2)判斷文件數據是否壓縮:

(2-1)若文件數據為未壓縮文件,則讀取文件頭數據中預存的真正的文件數據部分的長度信息並依據該信息計算文件數據file CRC;

(2-2)若文件數據為壓縮文件,則

(2-2-1)判斷所述文件數據的壓縮類型;

(2-2-2)解壓所述壓縮文件,根據步驟(2-1)中確定的壓縮類型選擇相應的解壓算法對所述壓縮文件進行解壓;

(2-2-3)依據解壓後的文件數據長度以及文件頭數據中預存的文件數據長度信息計算文件數據的file CRC;

(3)進行文件數據信息校驗:讀取文件頭數據中預存的文件數據的file CRC信息,比較計算出的file CRC信息與預存的file CRC信息,若校驗成功,則判斷文件數據內容完整,若校驗失敗,則轉入步驟(4);

(4)結束。

優選的,所述文件頭包括文件頭數據以及匹配信息,所述步驟(1)中,文件頭信息校驗包括以下步驟:

(1-1)讀取文件頭中的匹配信息,並與預設匹配信息比較,若二者相同,則轉入步驟(1-2)進行head CRC校驗,若二者不同,則轉入步驟(4);

(1-2)head CRC校驗:計算確定文件頭的head CRC信息,並讀取文件頭數據中預存的head CRC信息,比較計算出的文件頭head CRC信息與預存head CRC是否相同,若二者相同,則判斷檢驗通過,轉入步驟(2),若二者不同,則直接轉入步驟(4)。

進一步的,所述計算出的head_CRC為文件頭數據、匹配信息2個部分的校驗和。

更進一步的,所述文件頭數據還包括魔術字信息,所述步驟(1-1)前還包括魔術字校驗步驟,讀取文件頭中的魔術字信息並與預存符號進行比較,若二者相同,則通過轉入步驟(1-1),若二者不同,則直接轉入步驟(4)。

此外,所述文件頭數據還包括文件版本信息的長度、文件匹配信息長度、文件描述信息長度、含有校驗信息的文件的生成時間信息。

優選的,所述文件頭還包括版本信息與文件描述信息,所述計算出的head_CRC為文件頭數據、版本信息、匹配信息、文件描述信息4個部分的校驗和。

進一步的,文件數據信息校驗成功後,還包括版本信息比較步驟,比較文件版本信息與預設的版本信息,若二者相同,則可進行文件數據的替換,否則轉入步驟(4)。

本發明還公開了一種文件自校驗系統,包括:

文件頭校驗模塊,用於進行文件頭信息校驗;

文件壓縮判斷模塊,用於文件數據的壓縮判定,並依據判定結果計算文件數據file CRC信息;

文件數據校驗模塊,用於文件數據信息校驗的校驗;

以及信息上報模塊,用於校驗失敗,結束校驗進程。

優選的,所述文件頭校驗模塊進一步包括:魔術字校驗單元,用於比較文件頭數據中預存的魔術字與預設魔術字信息,初步判斷文件頭數據的起始部分是否有被修改;匹配信息校驗單元,用於比較文件頭中的匹配信息與預設匹配信息,判斷文件數據是否為指定單板的文件內容;以及head CRC校驗單元,用於依據文件頭數據、版本信息、匹配信息以及文件描述信息計算文件頭的head CRC,並與文件頭數據中預存的head CRC進行比較,進行文件頭數據信息校驗。

優選的,文件壓縮判斷模塊進一步包括:壓縮判斷單元,用於判斷文件數據是否壓縮並依據所述結果選擇對壓縮的文件數據解壓;壓縮文件數據file CRC計算單元,用於依據解壓後的文件數據長度以及文件頭數據中預存的文件數據長度信息計算文件數據的file CRC;以及非壓縮文件數據的file CRC計算單元,用於依據所述文件頭數據中預存的真正的文件數據部分的長度信息並依據該信息計算文件數據file CRC。

由於採用上述方案,本發明的有益效果是:

本發明所示的文件自校驗方法及系統,在原有的文件數據基礎之上增設文件頭,並對文件頭的結構進行定義,包括文件頭數據及匹配信息,其中文件頭數據包括預存文件校驗信息的CRC(head CRC)、文件的壓縮方式以及壓縮前文件的長度、壓縮後文件的長度文件數據部分的長度、文件數據部分的CRC校驗和(file CRC)等信息,然後根據上述文件頭結構信息對文件頭以及文件數據分別進行校驗,當二者均校驗成功後,判斷目標文件為確定且完整的,可進行後續文件替換,若其中一個校驗失敗,則說明文件在傳輸或者存放等過程中發生損壞,則結束進程,檢驗步驟方便快速,且可靠性高。。

附圖說明

圖1為本發明所示的文件自校驗方法一實施例的工作流程圖;

圖2為圖1所示實施例中文件頭校驗的工作流程圖;

圖3為文件結構一實施例的示意圖;

圖4為文件頭數據結構一實施例的示意圖;

圖5為文件自校驗系統一實施例的結構示意圖。

具體實施方式

以下結合附圖所示實施例對本發明作進一步的說明。

如圖1所示,本發明公開了一種文件自校驗方法,所述文件包括原始的文件數據以及增加的文件頭。

一實施例中,增加的文件頭包括文件頭數據以及匹配信息,文件頭數據包括預存文件校驗信息CRC(head CRC)、文件的壓縮方式以及壓縮前文件的長度、壓縮後文件的長度文件數據部分的長度、文件數據部分CRC校驗和(file CRC)。

則文件自校驗包括以下步驟:(1)進行文件頭信息校驗,若校驗成功,轉入步驟(2),若校驗失敗,則直接轉入步驟(4);

如圖2所示,步驟(1)中,文件頭信息校驗包括以下步驟:(1-1)讀取文件頭中的匹配信息,並與預設匹配信息比較,若二者相同,則轉入步驟(1-2)進行head CRC校驗,若二者不同,則轉入步驟(4);匹配信息主要用於描述文件和單板之間是否匹配,例如板類型,ID等信息,其長度不固定,由於在設備中存在多個不同類型的單板(硬體),每類單板又包括多個不同ID的單板,命名規則各不相同。故在進行文件校驗,以實現升級或者替換時,首先進行匹配信息判斷,若該文件的匹配信息與預設的相同,則說明該文件是配置給系統指定的單板,然後進行後續的文件完整性驗證,否則直接結束進程,避免出現文件更換後,導致的設備無法正常運行情況的發生。(1-2)head CRC校驗:計算確定文件頭的head CRC信息,由於增加的文件頭包括文件頭數據以及匹配信息,則本實施例中,計算出的head_CRC為文件頭數據、匹配信息2個部分的校驗和,同時讀取文件頭數據中預存head CRC信息,比較計算出的文件頭head CRC信息與預存head CRC是否相同,若二者相同,則判斷檢驗通過,轉入步驟(2),若二者不同,則直接轉入步驟(4)。

(2)判斷文件數據是否壓縮:(2-1)若文件數據為未壓縮文件,則讀取文件頭數據中預存的真正的文件數據部分的長度信息並依據該信息計算文件數據file CRC;(2-2)若文件數據為壓縮文件,則(2-2-1)判斷所述文件數據的壓縮類型;(2-2-2)解壓所述壓縮文件,根據步驟(2-1)中確定的壓縮類型選擇相應的解壓算法對所述壓縮文件進行解壓;(2-2-3)依據解壓後的文件數據長度以及文件頭數據中預存的文件數據長度信息計算文件數據的file CRC。

(3)進行文件數據信息校驗:讀取文件頭數據中預存的文件數據的file CRC信息,比較計算出的file CRC信息與預存的file CRC信息,若校驗成功,則判斷文件數據內容完整,若校驗失敗,則轉入步驟(4),結束;

文件頭信息校驗成功後,轉入文件數據的校驗步驟,首先進行文件數據壓縮的判斷,文件數據是否壓縮由用戶自行選擇,一般情況下,若該文件數據較小或緩存空間足夠時,則不壓縮直接進行數據的發送;若文件數據過大,需佔用較多空間時,通常會將該文件數據壓縮後發送。

在進行文件數據校驗時,若判斷文件數據未壓縮,則可直接進行文件數據信息的校驗步驟。通過讀取文件頭數據中預存的真正的文件數據部分的長度信息並依據該信息計算文件數據file CRC後,繼續讀取文件頭數據中預存的文件數據的file CRC信息,比較計算出的file CRC信息與預存的file CRC信息,若校驗成功,則判斷文件數據內容完整,則整個文件自校驗成功,可將該文件數據用於指定硬體的替換或者升級,若校驗失敗則說明文件數據內容不完整,直接替換可能出現設備出錯狀況的發生,此時需轉入步驟(4),結束整個進程。

若判斷文件數據為壓縮時,為防止出現數據在壓縮或者解壓縮過程中發生文件破損而可能導致文件數據不完整等情況的發生,故本實施例中,文件頭數據中預存文件數據部分的長度、文件的壓縮方式以及壓縮前文件的長度,則文件數據的校驗包括以下步驟:首先判斷文件數據的壓縮類型;然後文件數據壓縮類型選擇相應的解壓算法對該壓縮文件進行解壓,解壓算法通常為7z、gz、bz中的任意一種,壓縮文件解壓完成後,依據解壓後的文件數據長度以及文件頭數據中預存的文件數據長度信息計算文件數據的file CRC,繼續讀取文件頭數據中預存的文件數據的file CRC信息,比較計算出的file CRC信息與預存的file CRC信息,若校驗成功,則判斷文件數據內容完整,並為因為壓縮或者解壓導致文件破損,則整個文件自校驗成功,可將該文件數據用於指定硬體的替換或者升級,若校驗失敗則說明文件數據內容不完整,直接替換可能出現設備出錯狀況的發生,此時需轉入步驟(4),結束整個進程。

上述文件頭數據還包括魔術字信息,則步驟(1-1)前還包括魔術字校驗步驟,讀取文件頭中的魔術字信息並與預存符號進行比較,若二者相同,則說明文件頭數據的起始部分沒有有被修改,可轉入步驟(1-1)繼續後續文件完整性校驗步驟,若二者不同,則說明文件頭數據的起始部分已被修改,直接轉入步驟(4)。

另一實施例中,如圖3所示,在上述實施例的基礎之上,增加的文件頭除文件頭數據以及匹配信息外,還包括版本信息與文件描述信息,版本信息主要描述文件的版本,由FILE_VER結構體描述,文件描述信息則該文件的一些說明信息,例如主要的作用,創建者等等。則步驟(1)與步驟(2)之間,即文件數據信息校驗成功後,還包括比較文件版本信息與預設的版本信息,若二者相同,則可進行文件數據的替換,否則轉入步驟(4),以確保該文件是指定單板需要進行替換的正確版本文件。

除上述結構外,如圖4所示,文件頭還可包括文件版本信息長度、文件匹配信息長度,緊跟在文件頭數據後面,目前主要用於存儲板類型,可以有多個ITEM;其他說明長度,緊跟在匹配信息的後面;文件描述信息長度、含有校驗信息的文件的生成時間信息,依據上述信息計算確定head CRC後,與預存的head CRC進行比較,以進行文件完整性的校驗。

對應上述文件自校驗方法,如圖5所示,本發明還公開了一種文件自校驗系統,包括文件頭校驗模塊、文件壓縮判斷模塊、文件數據校驗模塊以及信息上報模塊。

其中,文件頭校驗模塊用於進行文件頭信息校驗,包括:魔術字校驗單元,用於比較文件頭數據中預存的魔術字與預設魔術字信息,進行簡單過濾,初步判斷文件頭數據的起始部分是否有被修改;魔術字可為ASCII字符值;判斷匹配信息校驗單元,用於比較文件頭中的匹配信息與預設匹配信息,判斷文件數據是否為指定單板的文件內容;以及head CRC校驗單元,用於依據文件頭數據、版本信息、匹配信息以及文件描述信息計算文件頭的head CRC,並與文件頭數據中預存的head CRC進行比較,進行文件頭數據信息校驗。當計算出的文件頭head CRC信息與預存head CRC二者相同,則判斷文件頭數據檢驗通過,進行後續文件數據校驗,若二者不同,則將該信息發送至信息上報模塊,結束進程。

文件壓縮判斷模塊,用於文件數據的壓縮判定,並依據判定結果計算文件數據file CRC信息;文件壓縮判斷模塊進一步包括:壓縮判斷單元,用於判斷文件數據是否壓縮並依據所述結果選擇對壓縮的文件數據解壓;通常解壓算法為7z、gz、bz中的任意一種。壓縮文件數據file CRC計算單元,用於依據解壓後的文件數據長度以及文件頭數據中預存的文件數據長度信息計算文件數據的file CRC;以及非壓縮文件數據的file CRC計算單元,用於依據所述文件頭數據中預存的真正的文件數據部分的長度信息並依據該信息計算文件數據file CRC。

文件數據校驗模塊,用於文件數據信息校驗的校驗,其比較計算出的file CRC信息與預存的file CRC信息,若校驗成功,則判斷文件數據內容完整,則整個文件自校驗成功,可將該文件數據用於指定硬體的替換或者升級,若校驗失敗則說明文件數據內容不完整,直接替換可能出現設備出錯狀況的發生,此時則將該信息發送至信息上報模塊,結束整個進程。

以及信息上報模塊,用於校驗失敗,結束校驗進程。

本發明實施例所示的文件自校驗方法及系統,在原有的文件數據基礎之上增設文件頭,並對文件頭的結構進行定義,包括文件頭數據及匹配信息,其中文件頭數據包括預存文件校驗信息的CRC(head CRC)、文件的壓縮方式以及壓縮前文件的長度、壓縮後文件的長度文件數據部分的長度、文件數據部分的CRC校驗和(file CRC)等信息,然後根據上述文件頭結構信息對文件頭以及文件數據分別進行校驗,當二者均校驗成功後,判斷目標文件為確定且完整的,可進行後續文件替換,若其中一個校驗失敗,則說明文件在傳輸或者存放等過程中發生損壞,則結束進程,檢驗步驟方便快速,且可靠性高。。

上述的對實施例的描述是為便於該技術領域的普通技術人員能理解和使用本發明。熟悉本領域技術的人員顯然可以容易地對這些實施例做出各種修改,並把在此說明的一般原理應用到其他實施例中而不必經過創造性的勞動。因此,本發明不限於上述實施例,本領域技術人員根據本發明的揭示,不脫離本發明範疇所做出的改進和修改都應該在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀