專(zhuān)利名稱:一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對(duì)文檔數(shù)據(jù)恢復(fù)的計(jì)算機(jī)處理,特別是涉及一種基于編碼方式的 文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法。
背景技術(shù):
文檔恢復(fù)指的是存儲(chǔ)系統(tǒng),或操作系統(tǒng),或文件系統(tǒng)層次上的數(shù)據(jù)丟失,這種丟失 是多方面的,如系統(tǒng)軟硬件故障、死機(jī)、病毒破壞、黑客攻擊、木馬破壞、誤操作、陣列數(shù)據(jù)丟 失等等;對(duì)于一般文件系統(tǒng)來(lái)說(shuō),這方面的研究工作起步較早,國(guó)內(nèi)外研究的都比較深。這 方面的主要難點(diǎn)是文件碎片的恢復(fù)處理、文檔修復(fù)和密碼恢復(fù)。早期的文檔恢復(fù)技術(shù)僅對(duì)文件分配表進(jìn)行搜索,從中找出被標(biāo)記為刪除的文檔進(jìn) 行恢復(fù),無(wú)法恢復(fù)那些在文件分配表中已被覆蓋的文檔。現(xiàn)有的文檔恢復(fù)技術(shù)已經(jīng)發(fā)展到 利用文檔文件簽名、文件結(jié)束字符等特征在存儲(chǔ)介質(zhì)中進(jìn)行搜索來(lái)找出文檔位置,再進(jìn)行 文檔恢復(fù)。現(xiàn)有文檔恢復(fù)技術(shù)利用文件簽名、文件結(jié)束字符等特征來(lái)進(jìn)行文檔恢復(fù),這種技 術(shù)無(wú)法恢復(fù)丟失了文件簽名、文件結(jié)束字符等特征的文檔文件碎片。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)之不足,提供一種基于編碼方式的文檔數(shù)據(jù)恢復(fù) 系統(tǒng)及其快速恢復(fù)方法,是以文檔數(shù)據(jù)的有效編碼為特征,通過(guò)提取存儲(chǔ)介質(zhì)中屬于有效 編碼的代碼來(lái)恢復(fù)各種文檔,可以對(duì)已丟失文件簽名、文件結(jié)束字符等特征的文檔數(shù)據(jù)文 件進(jìn)行恢復(fù),可恢復(fù)出未被其他文件覆蓋的各種文字信息。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種基于編碼方式的文檔數(shù)據(jù)恢復(fù) 系統(tǒng),包括—輸入單元,其用來(lái)讀取存儲(chǔ)介質(zhì)的文檔數(shù)據(jù)以及輸入預(yù)先設(shè)置的文檔編碼規(guī)則 和文檔編碼組合規(guī)則;一編碼規(guī)則存儲(chǔ)單元,與輸入單元的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元輸給的 且為預(yù)先設(shè)置的各種文檔編碼規(guī)則的數(shù)據(jù);一編碼組合規(guī)則存儲(chǔ)單元,與輸入單元的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元輸 給的且為預(yù)先設(shè)置的各種文檔編碼組合規(guī)則的數(shù)據(jù);一數(shù)據(jù)檢索單元,與輸入單元的輸出相連接,其用來(lái)從輸入單元接收文檔數(shù)據(jù),每 次接收一個(gè)文檔數(shù)據(jù)塊,且將接收到的文檔數(shù)據(jù)塊分成一個(gè)或多個(gè)子段,并從子段的預(yù)先 指定位置中提取預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié) 果確定下一步操作是進(jìn)行下個(gè)子段檢索或是進(jìn)入有效編碼提取單元;一有效編碼判斷單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元和編碼組合規(guī)則 存儲(chǔ)單元相連接,其用來(lái)接收由數(shù)據(jù)檢索單元發(fā)送的所述預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù),并從 編碼規(guī)則存儲(chǔ)單元和編碼組合規(guī)則存儲(chǔ)單元中調(diào)出規(guī)則數(shù)據(jù),利用該規(guī)則數(shù)據(jù)對(duì)所述預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)進(jìn)行比較分析,對(duì)文檔數(shù)據(jù)是否有有效編碼作出判斷,并將驗(yàn)證結(jié)果 反饋給數(shù)據(jù)檢索單元;一有效編碼提取單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元和編碼組合規(guī)則 存儲(chǔ)單元相連接,其用來(lái)接收由數(shù)據(jù)檢索單元發(fā)送的文檔數(shù)據(jù)塊,并從編碼規(guī)則存儲(chǔ)單元 和編碼組合規(guī)則存儲(chǔ)單元中調(diào)出規(guī)則數(shù)據(jù),從被確定為含有有效編碼的當(dāng)前子段開(kāi)始,對(duì) 整個(gè)數(shù)據(jù)塊進(jìn)行遍歷,提取出符合規(guī)則數(shù)據(jù)要求的編碼并將該編碼寫(xiě)入有效編碼存儲(chǔ)單 元;一有效編碼存儲(chǔ)單元,與有效編碼提取單元相連接,其用來(lái)儲(chǔ)存以編碼方式、對(duì)應(yīng) 規(guī)則及編碼在存儲(chǔ)介質(zhì)中的存放位置等多種組合來(lái)表示的有效編碼數(shù)據(jù);一編碼重組單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元、編碼組合規(guī)則存儲(chǔ)單 元和有效編碼存儲(chǔ)單元相連接,根據(jù)數(shù)據(jù)檢索單元的指令,從有效編碼存儲(chǔ)單元中調(diào)出存 放位置相近的編碼,并根據(jù)編碼組合規(guī)則存儲(chǔ)單元和有效編碼存儲(chǔ)單元所提供的有效編碼 編碼規(guī)則及編碼組合規(guī)則,將相應(yīng)的編碼通過(guò)組合,解碼,得到的文檔數(shù)據(jù)并輸出給輸出單 元;以及一輸出單元,與編碼重組單元相連接,其用于接收編碼重組單元輸出的文檔數(shù)據(jù), 并按照文檔在存儲(chǔ)介質(zhì)中的存放位置,顯示出經(jīng)過(guò)編碼重組和轉(zhuǎn)換后的文檔明文。一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,包括如下步驟a.用輸入單元從存儲(chǔ)介質(zhì)中讀取一個(gè)預(yù)先設(shè)置好大小的文檔數(shù)據(jù)塊到內(nèi)存;b.用數(shù)據(jù)檢索單元將所述文檔數(shù)據(jù)塊分成多個(gè)文檔數(shù)據(jù)子塊;c.數(shù)據(jù)檢索單元在當(dāng)前文檔數(shù)據(jù)子塊中,從一個(gè)預(yù)先指定好的位置處提取一個(gè)預(yù) 先指定好長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元;d.有效編碼判斷單元對(duì)所述預(yù)先指定好長(zhǎng)度的文檔數(shù)據(jù)是否存在有效編碼格式 進(jìn)行判斷,并將判斷結(jié)果返回給數(shù)據(jù)檢索單元;判斷后,若存在有效編碼格式,則進(jìn)入有效 編碼提取過(guò)程,提取完成后,轉(zhuǎn)至步驟g,若不存在有效編碼格式,繼續(xù)下一步驟;e.由數(shù)據(jù)檢索單元移動(dòng)到下一文檔數(shù)據(jù)子塊;f.數(shù)據(jù)檢索單元判斷是否到文檔數(shù)據(jù)塊的末尾,如果是,繼續(xù)下一步驟,否則返回 步驟c ;g.輸入單元判斷存儲(chǔ)介質(zhì)的所有文檔數(shù)據(jù)是否讀取完,若已讀取完則結(jié)束,若未 讀取完則返回步驟a。所述的有效編碼提取過(guò)程,是由當(dāng)前子塊的位置開(kāi)始,回溯特定長(zhǎng)度的文檔數(shù)據(jù), 并根據(jù)有效編碼規(guī)則和編碼組合規(guī)則對(duì)數(shù)據(jù)塊的接下去的數(shù)據(jù)進(jìn)行搜索,查找出屬于文檔 的字符,并輸出到指定位置。所述的特定長(zhǎng)度的文檔數(shù)據(jù),是在當(dāng)前子塊的位置開(kāi)始,每次回溯一個(gè)預(yù)先指定 長(zhǎng)度的文檔數(shù)據(jù),并根據(jù)有效編碼規(guī)則和編碼組合規(guī)則對(duì)該預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)集進(jìn) 行判斷,如果為有效編碼格式,則繼續(xù)回溯一個(gè)預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù),直至沒(méi)有有效編 碼格式為止。本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法,是以文檔有 效編碼為搜索特征,文檔有效編碼指的是文檔中文字的編碼范圍。本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,實(shí)際上是采用了索引搜索
5過(guò)程和內(nèi)容搜索過(guò)程,來(lái)實(shí)現(xiàn)快速的目的。索引搜索過(guò)程是對(duì)輸入裝置所輸入的數(shù)據(jù)塊進(jìn)行進(jìn)一步的分段,并對(duì)各個(gè)分段的 特定位置進(jìn)行編碼規(guī)則匹配,任一特定位置匹配成功,從該位置開(kāi)始進(jìn)入內(nèi)容搜索過(guò)程,所 有特定位置匹配失敗,進(jìn)入下一個(gè)索引搜索過(guò)程。內(nèi)容搜索過(guò)程是從傳入的位置開(kāi)始,回溯特定數(shù)據(jù)長(zhǎng)度,再根據(jù)有效編碼規(guī)則和 編碼組合規(guī)則對(duì)接下去的數(shù)據(jù)進(jìn)行檢索,查找出屬于文檔的字符,并輸出到指定位置。本發(fā)明的有益效果是,由于本發(fā)明采用了一輸入單元、一編碼規(guī)則存儲(chǔ)單元、一 編碼組合規(guī)則存儲(chǔ)單元、一數(shù)據(jù)檢索單元、一有效編碼判斷單元、一有效編碼提取單元、一 有效編碼存儲(chǔ)單元、一編碼重組單元和一輸出單元來(lái)構(gòu)成基于編碼方式的文檔數(shù)據(jù)恢復(fù)系 統(tǒng),該基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)是以文檔數(shù)據(jù)的有效編碼為特征,通過(guò)提取存儲(chǔ) 介質(zhì)中屬于有效編碼的代碼來(lái)恢復(fù)各種文檔,可以對(duì)已丟失文件簽名、文件結(jié)束字符等特 征的文檔數(shù)據(jù)文件進(jìn)行恢復(fù),可恢復(fù)出未被其他文件覆蓋的各種文字信息。與其他文檔恢復(fù)方法相比,本發(fā)明的文檔恢復(fù)系統(tǒng)文檔識(shí)別率高,搜索速度快,并 且能夠發(fā)現(xiàn)已損壞文檔的碎片,并將之從存儲(chǔ)介質(zhì)中提取出來(lái),可以極大提高現(xiàn)有的文檔 恢復(fù)成功率。與其他文件相比,文檔文件最關(guān)鍵的內(nèi)容在于其內(nèi)部的文字內(nèi)容,而現(xiàn)有的文檔 恢復(fù)系統(tǒng)基本無(wú)法恢復(fù)出文字碎片,利用本發(fā)明的文檔恢復(fù)系統(tǒng),可將存儲(chǔ)介質(zhì)中有意義 的文字碎片提取出來(lái),再進(jìn)行整理,對(duì)文檔恢復(fù)具有極重大的意義。以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明;但本發(fā)明的一種基于編碼方 式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法不局限于實(shí)施例。
圖1是本發(fā)明的系統(tǒng)的框圖;圖2是本發(fā)明的方法的流程圖;圖3是一個(gè)被覆蓋的文檔碎片的示意圖;圖4是一個(gè)文檔數(shù)據(jù)塊的示意圖。
具體實(shí)施例方式實(shí)施例,參見(jiàn)圖1所示,本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng),包括一輸入單元1,其用來(lái)讀取存儲(chǔ)介質(zhì)的文檔數(shù)據(jù)以及輸入預(yù)先設(shè)置的文檔編碼規(guī) 則和文檔編碼組合規(guī)則;輸入單元1是存儲(chǔ)介質(zhì)的導(dǎo)入、及各種文檔編碼規(guī)則、編碼組合規(guī) 則的輸入中所使用的輸入裝置,用來(lái)讀取存儲(chǔ)介質(zhì)內(nèi)容并輸送給內(nèi)容提取單元及將各種文 檔編碼規(guī)則、編碼組合規(guī)則存入對(duì)應(yīng)的存儲(chǔ)單元中;一編碼規(guī)則存儲(chǔ)單元2,與輸入單元1的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元1輸 給的且為預(yù)先設(shè)置的各種文檔編碼規(guī)則的數(shù)據(jù);一編碼組合規(guī)則存儲(chǔ)單元3,與輸入單元1的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元 1輸給的且為預(yù)先設(shè)置的各種文檔編碼組合規(guī)則的數(shù)據(jù);一數(shù)據(jù)檢索單元4,與輸入單元1的輸出相連接,其用來(lái)從輸入單元1接收文檔數(shù) 據(jù),每次接收一個(gè)文檔數(shù)據(jù)塊,且將接收到的文檔數(shù)據(jù)塊分成一個(gè)或多個(gè)子段,并從子段的預(yù)先指定位置中提取預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元5進(jìn)行驗(yàn)證,根據(jù) 驗(yàn)證結(jié)果確定下一步操作是進(jìn)行下個(gè)子段檢索或是進(jìn)入有效編碼提取單元6 ;一有效編碼判斷單元5,分別與數(shù)據(jù)檢索單元4、編碼規(guī)則存儲(chǔ)單元2和編碼組合 規(guī)則存儲(chǔ)單元3相連接,其用來(lái)接收由數(shù)據(jù)檢索單元4發(fā)送的所述預(yù)先指定長(zhǎng)度的文檔數(shù) 據(jù),并從編碼規(guī)則存儲(chǔ)單元2和編碼組合規(guī)則存儲(chǔ)單元3中調(diào)出規(guī)則數(shù)據(jù)(可以是一個(gè)規(guī) 則,也可以是多個(gè)規(guī)則),利用該規(guī)則數(shù)據(jù)對(duì)所述預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)進(jìn)行比較分析, 對(duì)文檔數(shù)據(jù)是否有有效編碼作出判斷,并將驗(yàn)證結(jié)果反饋給數(shù)據(jù)檢索單元4 ;—有效編碼提取單元6,分別與數(shù)據(jù)檢索單元4、編碼規(guī)則存儲(chǔ)單元2和編碼組合 規(guī)則存儲(chǔ)單元3相連接,其用來(lái)接收由數(shù)據(jù)檢索單元4發(fā)送的文檔數(shù)據(jù)塊,并從編碼規(guī)則存 儲(chǔ)單元2和編碼組合規(guī)則存儲(chǔ)單元3中調(diào)出規(guī)則數(shù)據(jù),從被確定為含有有效編碼的當(dāng)前子 段開(kāi)始,對(duì)整個(gè)數(shù)據(jù)塊進(jìn)行遍歷,提取出符合規(guī)則數(shù)據(jù)要求的編碼并將該編碼寫(xiě)入有效編 碼存儲(chǔ)單元7 ;一有效編碼存儲(chǔ)單元7,與有效編碼提取單元6相連接,其用來(lái)儲(chǔ)存以編碼方式、 對(duì)應(yīng)規(guī)則及編碼在存儲(chǔ)介質(zhì)中的存放位置等多種組合來(lái)表示的有效編碼數(shù)據(jù);—編碼重組單元8,分別與數(shù)據(jù)檢索單元4、編碼規(guī)則存儲(chǔ)單元2、編碼組合規(guī)則存 儲(chǔ)單元3和有效編碼存儲(chǔ)單元7相連接,根據(jù)數(shù)據(jù)檢索單元4的指令,從有效編碼存儲(chǔ)單元 7中調(diào)出存放位置相近的編碼,并根據(jù)編碼組合規(guī)則存儲(chǔ)單元2和有效編碼存儲(chǔ)單元3所提 供的有效編碼編碼規(guī)則及編碼組合規(guī)則,將相應(yīng)的編碼通過(guò)組合,解碼,得到文檔數(shù)據(jù)并輸 出給輸出單元9;以及一輸出單元9,與編碼重組單元8相連接,其用于接收編碼重組單元8輸出的文檔 數(shù)據(jù),并按照文檔在存儲(chǔ)介質(zhì)中的存放位置,顯示出經(jīng)過(guò)編碼重組和轉(zhuǎn)換后的文檔明文。參見(jiàn)圖2所示,本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,包括如下 步驟a.用輸入單元從存儲(chǔ)介質(zhì)中讀取一個(gè)預(yù)先設(shè)置好大小的文檔數(shù)據(jù)塊到內(nèi)存;即 圖2中的讀取部分?jǐn)?shù)據(jù)到內(nèi)存;b.用數(shù)據(jù)檢索單元將所述文檔數(shù)據(jù)塊分成多個(gè)文檔數(shù)據(jù)子塊;c.數(shù)據(jù)檢索單元在當(dāng)前文檔數(shù)據(jù)子塊中,從一個(gè)預(yù)先指定好的位置處提取一個(gè)預(yù) 先指定好長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元;即圖2中的從數(shù)據(jù)當(dāng)前位置開(kāi)始分析 是否存在有效編碼格式;d.有效編碼判斷單元對(duì)所述預(yù)先指定好長(zhǎng)度的文檔數(shù)據(jù)是否存在有效編碼格式 進(jìn)行判斷,并將判斷結(jié)果返回給數(shù)據(jù)檢索單元;判斷后,若存在有效編碼格式,則進(jìn)入有效 編碼提取過(guò)程(即圖2中的在當(dāng)前位置進(jìn)一步搜索有效編碼,并恢復(fù)文檔內(nèi)容),提取完成 后,轉(zhuǎn)至步驟g,若不存在有效編碼格式,繼續(xù)下一步驟;e.由數(shù)據(jù)檢索單元移動(dòng)到下一文檔數(shù)據(jù)子塊;即圖2中的移動(dòng)到下一個(gè)位置;f.數(shù)據(jù)檢索單元判斷是否到文檔數(shù)據(jù)塊的末尾,如果是,繼續(xù)下一步驟,否則返回 步驟c ;g.輸入單元判斷存儲(chǔ)介質(zhì)的所有文檔數(shù)據(jù)是否讀取完,若已讀取完則結(jié)束,若未 讀取完則返回步驟a。所述的有效編碼提取過(guò)程,是由當(dāng)前子塊的位置開(kāi)始,回溯特定長(zhǎng)度的文檔數(shù)據(jù),并根據(jù)有效編碼規(guī)則和編碼組合規(guī)則對(duì)數(shù)據(jù)塊的接下去的數(shù)據(jù)進(jìn)行搜索,查找出屬于文檔 的字符,并輸出到指定位置。所述的特定長(zhǎng)度的文檔數(shù)據(jù),是在當(dāng)前子塊的位置開(kāi)始,每次回溯一個(gè)預(yù)先指定 長(zhǎng)度的文檔數(shù)據(jù),并根據(jù)有效編碼規(guī)則和編碼組合規(guī)則對(duì)該預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)集進(jìn) 行判斷,如果為有效編碼格式,則繼續(xù)回溯一個(gè)預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù),直至沒(méi)有有效編 碼格式為止。本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法,是以文檔有 效編碼為搜索特征,文檔有效編碼指的是文檔中文字的編碼范圍。參見(jiàn)圖3所示,文檔為Uni cοde編碼,在該編碼中,漢字的有效編碼范圍為 \u4E00-\u9FA5+\uF900-\uFA2D。半角標(biāo)點(diǎn)和英文字母的有效編碼范圍為\u0021_\u007E, 全角標(biāo)點(diǎn)有效編碼范圍為\u3001-\u3017+\uFF01-\uFF5E,通過(guò)判斷指定位置是否屬于以 上這些范圍的組合,來(lái)確定指定位置是否屬于有效編碼。由于文檔恢復(fù)通常關(guān)注的是有意 義的內(nèi)容,因此還可以通過(guò)各種編碼組合方式,如連續(xù)三個(gè)以上漢字或標(biāo)點(diǎn)等來(lái)判斷多個(gè) 連續(xù)的有效編碼是否存在組合可能,來(lái)形成有意義的句子。下面是幾種可能的組合方式連續(xù)的漢字編碼組合0000445016E 63 B5 6B 19 52 FB 4E OF 61 84 76 7F 4F 28 75 據(jù)段則任意
的使用連續(xù)漢字+單個(gè)標(biāo)點(diǎn)00004480184 76 DO 8F 97 7B OC FF 76 5E 8F 96 OF 61 39 65 的運(yùn)算,并隨
意改連續(xù)漢字+單個(gè)或多個(gè)字母00004D60 | IF 77 63 6B 43 00 50 00 55 00 00 4E 37 68 D6 53 | 真正 CPU —樣
取本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,實(shí)際上是采用了索引搜索 過(guò)程和內(nèi)容搜索過(guò)程,來(lái)實(shí)現(xiàn)快速的目的。索引搜索過(guò)程是對(duì)輸入裝置所輸入的數(shù)據(jù)塊進(jìn)行進(jìn)一步的分段,并對(duì)各個(gè)分段的 特定位置進(jìn)行編碼規(guī)則匹配,任一特定位置匹配成功,從該位置開(kāi)始進(jìn)入內(nèi)容搜索過(guò)程,所 有特定位置匹配失敗,進(jìn)入下一個(gè)索引搜索過(guò)程。內(nèi)容搜索過(guò)程是從傳入的位置開(kāi)始,回溯特定數(shù)據(jù)長(zhǎng)度,再根據(jù)有效編碼規(guī)則和 編碼組合規(guī)則對(duì)接下去的數(shù)據(jù)進(jìn)行檢索,查找出屬于文檔的字符,并輸出到指定位置。以下結(jié)合圖4來(lái)進(jìn)一步說(shuō)明本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方 法。首先,從待檢索的存儲(chǔ)介質(zhì)中讀入部分?jǐn)?shù)據(jù)到內(nèi)存中,如讀取1個(gè)扇區(qū)512個(gè)字 節(jié),如圖4所示開(kāi)始索引檢索過(guò)程,將數(shù)據(jù)塊分成4段(即4個(gè)數(shù)據(jù)子塊)進(jìn)行檢索,首先檢索第 一段從數(shù)據(jù)當(dāng)前位置0χ00009200處開(kāi)始分析,分析16個(gè)字節(jié),分析結(jié)果不存在有效 編碼,跳到下一個(gè)位置0χ0000^80 ;從數(shù)據(jù)當(dāng)前位置0χ00009280處開(kāi)始分析,分析16個(gè)字節(jié),分析結(jié)果不存在有效 編碼,跳到下一個(gè)位置0χ00009300 ;
從數(shù)據(jù)當(dāng)前位置0χ00009300處開(kāi)始分析,分析16個(gè)字節(jié),分析結(jié)果在 0x00009300處存在連續(xù)的有效編碼,進(jìn)入內(nèi)容檢索過(guò)程;從數(shù)據(jù)當(dāng)前位置=0x00009300處往前回溯,每次回溯16個(gè)字節(jié),直到未發(fā)現(xiàn)有效 編碼,最終得到檢索開(kāi)始位置0X000092C0 ;從0X000092C0處開(kāi)始檢索,直到數(shù)據(jù)塊結(jié)尾0x000093FF,得到多個(gè)有效編碼;讀取下一個(gè)數(shù)據(jù)塊=0x00009400,開(kāi)始新的檢索過(guò)程??焖贆z索經(jīng)常需要在文檔恢復(fù)準(zhǔn)確度與文檔檢索速度間進(jìn)行平衡,要讓文檔恢復(fù) 準(zhǔn)確度高,就需要將每次讀入的數(shù)據(jù)塊減小,文檔檢索速度也就變慢,反之,則可以加快文 檔檢索速度,例如,從文字意義上考慮,一般要讓恢復(fù)出來(lái)的文檔存在可讀性,一般需要20 個(gè)字以上,因此可以設(shè)定每次讀入的數(shù)據(jù)塊為512字節(jié),檢索時(shí)只需對(duì)數(shù)據(jù)塊的首部、中 間、尾部進(jìn)行判斷,如果符合有效編碼,則進(jìn)行詳細(xì)搜索,反之,可認(rèn)為該數(shù)據(jù)塊不存在可讀 性文檔碎片,可以讀入下一個(gè)數(shù)據(jù)塊進(jìn)行搜索。上述實(shí)施例僅用來(lái)進(jìn)一步說(shuō)明本發(fā)明的一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng) 及其快速恢復(fù)方法,但本發(fā)明并不局限于實(shí)施例,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施 例所作的任何簡(jiǎn)單修改、等同變化與修飾,均落入本發(fā)明技術(shù)方案的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng),其特征在于包括一輸入單元,其用來(lái)讀取存儲(chǔ)介質(zhì)的文檔數(shù)據(jù)以及輸入預(yù)先設(shè)置的文檔編碼規(guī)則和文 檔編碼組合規(guī)則;一編碼規(guī)則存儲(chǔ)單元,與輸入單元的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元輸給的且為 預(yù)先設(shè)置的各種文檔編碼規(guī)則的數(shù)據(jù);一編碼組合規(guī)則存儲(chǔ)單元,與輸入單元的輸出相連接,其用來(lái)存儲(chǔ)由輸入單元輸給的 且為預(yù)先設(shè)置的各種文檔編碼組合規(guī)則的數(shù)據(jù);一數(shù)據(jù)檢索單元,與輸入單元的輸出相連接,其用來(lái)從輸入單元接收文檔數(shù)據(jù),每次接 收一個(gè)文檔數(shù)據(jù)塊,且將接收到的文檔數(shù)據(jù)塊分成一個(gè)或多個(gè)子段,并從子段的預(yù)先指定 位置中提取預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元進(jìn)行驗(yàn)證,根據(jù)驗(yàn)證結(jié)果確 定下一步操作是進(jìn)行下個(gè)子段檢索或是進(jìn)入有效編碼提取單元;一有效編碼判斷單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元和編碼組合規(guī)則存儲(chǔ) 單元相連接,其用來(lái)接收由數(shù)據(jù)檢索單元發(fā)送的所述預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù),并從編碼 規(guī)則存儲(chǔ)單元和編碼組合規(guī)則存儲(chǔ)單元中調(diào)出規(guī)則數(shù)據(jù),利用該規(guī)則數(shù)據(jù)對(duì)所述預(yù)先指定 長(zhǎng)度的文檔數(shù)據(jù)進(jìn)行比較分析,對(duì)文檔數(shù)據(jù)是否有有效編碼作出判斷,并將驗(yàn)證結(jié)果反饋 給數(shù)據(jù)檢索單元;一有效編碼提取單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元和編碼組合規(guī)則存儲(chǔ) 單元相連接,其用來(lái)接收由數(shù)據(jù)檢索單元發(fā)送的文檔數(shù)據(jù)塊,并從編碼規(guī)則存儲(chǔ)單元和編 碼組合規(guī)則存儲(chǔ)單元中調(diào)出規(guī)則數(shù)據(jù),從被確定為含有有效編碼的當(dāng)前子段開(kāi)始,對(duì)整個(gè) 數(shù)據(jù)塊進(jìn)行遍歷,提取出符合規(guī)則數(shù)據(jù)要求的編碼并將該編碼寫(xiě)入有效編碼存儲(chǔ)單元;一有效編碼存儲(chǔ)單元,與有效編碼提取單元相連接,其用來(lái)儲(chǔ)存以編碼方式、對(duì)應(yīng)規(guī)則 及編碼在存儲(chǔ)介質(zhì)中的存放位置等多種組合來(lái)表示的有效編碼數(shù)據(jù);一編碼重組單元,分別與數(shù)據(jù)檢索單元、編碼規(guī)則存儲(chǔ)單元、編碼組合規(guī)則存儲(chǔ)單元和 有效編碼存儲(chǔ)單元相連接,根據(jù)數(shù)據(jù)檢索單元的指令,從有效編碼存儲(chǔ)單元中調(diào)出存放位 置相近的編碼,并根據(jù)編碼組合規(guī)則存儲(chǔ)單元和有效編碼存儲(chǔ)單元所提供的有效編碼編碼 規(guī)則及編碼組合規(guī)則,將相應(yīng)的編碼通過(guò)組合,解碼,得到的文檔數(shù)據(jù)并輸出給輸出單元; 以及一輸出單元,與編碼重組單元相連接,其用于接收編碼重組單元輸出的文檔數(shù)據(jù),并按 照文檔在存儲(chǔ)介質(zhì)中的存放位置,顯示出經(jīng)過(guò)編碼重組和轉(zhuǎn)換后的文檔明文。
2.一種基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,其特征在于包括如下步驟a.用輸入單元從存儲(chǔ)介質(zhì)中讀取一個(gè)預(yù)先設(shè)置好大小的文檔數(shù)據(jù)塊到內(nèi)存;b.用數(shù)據(jù)檢索單元將所述文檔數(shù)據(jù)塊分成多個(gè)文檔數(shù)據(jù)子塊;c.數(shù)據(jù)檢索單元在當(dāng)前文檔數(shù)據(jù)子塊中,從一個(gè)預(yù)先指定好的位置處提取一個(gè)預(yù)先指 定好長(zhǎng)度的文檔數(shù)據(jù)發(fā)送給有效編碼判斷單元;d.有效編碼判斷單元對(duì)所述預(yù)先指定好長(zhǎng)度的文檔數(shù)據(jù)是否存在有效編碼格式進(jìn)行 判斷,并將判斷結(jié)果返回給數(shù)據(jù)檢索單元;判斷后,若存在有效編碼格式,則進(jìn)入有效編碼 提取過(guò)程,提取完成后,轉(zhuǎn)至步驟g,若不存在有效編碼格式,繼續(xù)下一步驟;e.由數(shù)據(jù)檢索單元移動(dòng)到下一文檔數(shù)據(jù)子塊;f.數(shù)據(jù)檢索單元判斷是否到文檔數(shù)據(jù)塊的末尾,如果是,繼續(xù)下一步驟,否則返回步驟c ;g.輸入單元判斷存儲(chǔ)介質(zhì)的所有文檔數(shù)據(jù)是否讀取完,若已讀取完則結(jié)束,若未讀取 完則返回步驟a。
3.根據(jù)權(quán)利要求2所述的基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,其特征在于所述 的有效編碼提取過(guò)程,是由當(dāng)前子塊的位置開(kāi)始,回溯特定長(zhǎng)度的文檔數(shù)據(jù),并根據(jù)有效編 碼規(guī)則和編碼組合規(guī)則對(duì)數(shù)據(jù)塊的接下去的數(shù)據(jù)進(jìn)行搜索,查找出屬于文檔的字符,并輸 出到指定位置。
4.根據(jù)權(quán)利要求3所述的基于編碼方式的文檔數(shù)據(jù)快速恢復(fù)方法,其特征在于所述 的特定長(zhǎng)度的文檔數(shù)據(jù),是在當(dāng)前子塊的位置開(kāi)始,每次回溯一個(gè)預(yù)先指定長(zhǎng)度的文檔數(shù) 據(jù),并根據(jù)有效編碼規(guī)則和編碼組合規(guī)則對(duì)該預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù)集進(jìn)行判斷,如果 為有效編碼格式,則繼續(xù)回溯一個(gè)預(yù)先指定長(zhǎng)度的文檔數(shù)據(jù),直至沒(méi)有有效編碼格式為止。
全文摘要
本發(fā)明公開(kāi)了一種基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)及其快速恢復(fù)方法,該系統(tǒng)包括輸入單元、編碼規(guī)則存儲(chǔ)單元、編碼組合規(guī)則存儲(chǔ)單元、數(shù)據(jù)檢索單元、有效編碼判斷單元、有效編碼提取單元、有效編碼存儲(chǔ)單元、編碼重組單元和輸出單元,該基于編碼方式的文檔數(shù)據(jù)恢復(fù)系統(tǒng)是以文檔數(shù)據(jù)的有效編碼為特征,通過(guò)提取存儲(chǔ)介質(zhì)中屬于有效編碼的代碼來(lái)恢復(fù)各種文檔,可以對(duì)已丟失文件簽名、文件結(jié)束字符等特征的文檔數(shù)據(jù)文件進(jìn)行恢復(fù),可恢復(fù)出未被其他文件覆蓋的各種文字信息。本發(fā)明的文檔恢復(fù)系統(tǒng)及其快速恢復(fù)方法,具有文檔識(shí)別率高,搜索速度快的特點(diǎn),并且能夠發(fā)現(xiàn)已損壞文檔的碎片,并將之從存儲(chǔ)介質(zhì)中提取出來(lái),可以極大提高現(xiàn)有的文檔恢復(fù)成功率。
文檔編號(hào)G06F17/30GK102073682SQ20101059955
公開(kāi)日2011年5月25日 申請(qǐng)日期2010年12月21日 優(yōu)先權(quán)日2010年12月21日
發(fā)明者張雪峰, 黃志煒 申請(qǐng)人:廈門(mén)市美亞柏科信息股份有限公司