国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法

      文檔序號:6631916閱讀:1067來源:國知局
      一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法
      【專利摘要】本發(fā)明公開了一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,包括以下步驟:S1:連接裝有SQLite數(shù)據(jù)庫的設(shè)備,建立與設(shè)備的連接通道;S2:掃描設(shè)備內(nèi)存空間中所有SQLite文件,得到存儲路徑;S3:將掃描到的SQLite文件逐個進行分析,并進行非正常數(shù)據(jù)清除。本發(fā)明優(yōu)點在于掃描全面,能夠找到存儲空間內(nèi)的所有SQLite文件并針對SQLite內(nèi)的所有區(qū)域進行掃描和標記;清除徹底,針對SQLite文件內(nèi)master表、數(shù)據(jù)表、索引表、空閑頁面的非正常數(shù)據(jù)進行掃描和清除;防止針對隱私數(shù)據(jù)的惡意盜取行為,保護隱私數(shù)據(jù)的安全。
      【專利說明】一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及信息安全【技術(shù)領(lǐng)域】,特別涉及一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法。

      【背景技術(shù)】
      [0002]SQLite是一種輕型數(shù)據(jù)庫,占用資源少,具有支持主流操作系統(tǒng),能跟多種語言結(jié)合,處理速度快的特點而被廣泛使用。SQLite數(shù)據(jù)庫中的數(shù)據(jù)涉國家機關(guān)、軍隊、企業(yè)、事業(yè)單位、個人的保密數(shù)據(jù)及隱私。
      [0003]使用含SQLite數(shù)據(jù)庫的應(yīng)用程序時,對數(shù)據(jù)進行的刪除操作并沒有做到真正意義上的刪除,數(shù)據(jù)仍然存在只是被標記為刪除狀態(tài);而通過目前市面上的一些數(shù)據(jù)恢復(fù)軟件可以輕松的找出這些被刪除的數(shù)據(jù),從而被一些不法分子利用竊取隱私數(shù)據(jù),對個人、企業(yè)、國家機關(guān)照成嚴重的損失和危害;所以目前急需一種能夠徹底清除SQLite數(shù)據(jù)庫中隱私數(shù)據(jù)的方法。


      【發(fā)明內(nèi)容】

      [0004]本發(fā)明針對現(xiàn)有技術(shù)的缺陷,提出一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,能有效的解決上述現(xiàn)有技術(shù)存在的問題。
      [0005]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,包括以下步驟:
      51:連接裝有SQLite數(shù)據(jù)庫的設(shè)備,建立與設(shè)備的連接通道;
      52:掃描設(shè)備內(nèi)存空間中所有SQLite文件,得到存儲路徑;
      53:將掃描到的SQLite文件逐個進行分析,并進行非正常數(shù)據(jù)清除。
      [0006]作為優(yōu)選,所述S2包括以下步驟:
      5201:逐個掃描設(shè)備存儲空間,獲取路徑;
      5202:判斷獲取的路徑對應(yīng)的是文件夾還是文件,若是文件夾則打開掃描文件夾內(nèi)的文件,若是文件則執(zhí)行S203 ;
      5203:解析并判斷該文件是否為SQLite數(shù)據(jù)庫文件,若是執(zhí)行S204,否則執(zhí)行S205 ;
      5204:記錄該SQLite數(shù)據(jù)庫文件的路徑,執(zhí)行步驟S205 ;
      5205:判斷是否掃描完成,如果掃描完成,執(zhí)行S206,否則繼續(xù)掃描直至完成所有SQLite數(shù)據(jù)庫文件路徑記錄;
      5206:掃描完成后返回并存儲所有的SQLite數(shù)據(jù)庫文件的路徑。
      [0007]作為優(yōu)選,所述S3包括一下步驟:
      5301:根據(jù)存儲的SQLite文件路徑中提取一個SQLite文件;
      5302:解析并清除master表中的非正常數(shù)據(jù);
      5303:解析并清除數(shù)據(jù)表和索引表中的非正常數(shù)據(jù);
      5304:解析并清除空閑頁面的非正常數(shù)據(jù);
      5305:判斷所有SQLite文件是否解析完成,如是則退出;如否則返回到S301。
      [0008]作為優(yōu)選,所述S302包括以下步驟:
      53021:從master表的根頁開始,找到master表所有的頁面,并使頁號在邏輯上形成B
      樹;
      53022:根據(jù)master表的B樹,解析每個頁面,對頁面的未分配區(qū)、自由塊、碎片在位圖上進行標記;
      53023:對表葉子頁的單元內(nèi)容區(qū)進行解析,查看單元是否有溢出頁,如果有則對溢出頁中的碎片進行標記;如果沒有則跳過;
      53024:將解析出來的所有表信息存儲,提供給S303使用;
      53025:根據(jù)位圖上的標記,清除標記區(qū)域的所有數(shù)據(jù)。
      [0009]作為優(yōu)選,所述S303包括以下步驟:
      53031:從S3024得到的表信息中取出一條表信息;
      53032:判斷該表的類型;
      53033:根據(jù)表類型,創(chuàng)建表的對象,從表的根頁開始,找到所有表的頁面,并使頁號在邏輯上形成B樹;
      53034:根據(jù)表的B樹,解析每個頁面,對頁面的未分配區(qū)、自由塊、碎片在位圖上進行標記;
      53035:解析葉子頁及索引頁的單元內(nèi)容區(qū),查看單元是否有溢出頁,如果有則對溢出頁中的碎片進行標記;如果沒有則跳過;
      53036:根據(jù)位圖上的標記,清除該表所有標記區(qū)域數(shù)據(jù);
      53037:判斷所有表是否解析完成,如果是,則退出;如果否,則返回到S3031 ;
      作為優(yōu)選,所述S304包括以下步驟:
      53041:讀取SQLite空閑頁鏈表首頁指針;
      53042:判斷是否有空閑頁,若沒有則結(jié)束,若有則執(zhí)行S3043 ;
      53043:讀取該空閑樹干頁內(nèi)容,并清除其中的碎片數(shù)據(jù);
      53044:判斷該空閑樹干頁下是否有空閑葉子頁,如果有,則執(zhí)行S3045 ;如果沒有,則S執(zhí)行3046 ;
      53045:讀取該空閑樹干頁下的所有空閑葉子頁,并清除每個空閑葉子頁中的碎片數(shù)據(jù);
      53046:讀取下一個空閑樹干頁的指針;
      53047:判斷下一個空閑樹干頁的指針是否為零,若為零則表示空閑鏈表已到尾部,結(jié)束;若不為零則執(zhí)行S3043。
      [0010]與現(xiàn)有技術(shù)相比本發(fā)明的優(yōu)點在于:
      掃描全面,能夠找到存儲空間內(nèi)的所有SQLite文件并針對SQLite內(nèi)的所有區(qū)域進行掃描和標記。
      [0011]清除徹底,針對SQLite文件內(nèi)master表、數(shù)據(jù)表、索引表、空閑頁面的非正常數(shù)據(jù)進行掃描和清除。
      [0012]預(yù)防針對隱私數(shù)據(jù)的惡意盜取行為,保護數(shù)據(jù)的安全。

      【專利附圖】

      【附圖說明】
      [0013]圖1為本發(fā)明實施例的主流程圖;
      圖2為本發(fā)明實施例步驟S2的流程圖;
      圖3為本發(fā)明實施例步驟S3的流程圖;
      圖4為本發(fā)明實施例步驟S302的流程圖;
      圖5為本發(fā)明實施例步驟S303的流程圖;
      圖6為本發(fā)明實施例步驟S304的流程圖。

      【具體實施方式】
      [0014]為了詳細說明本發(fā)明的【具體實施方式】,下面結(jié)合附圖加以說明:
      如圖1所示,一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,包括以下步驟:
      51:連接裝有SQLite數(shù)據(jù)庫的設(shè)備,建立與設(shè)備的連接通道;
      52:掃描設(shè)備內(nèi)存空間中所有SQLite文件,得到存儲路徑;
      53:將掃描到的SQLite文件逐個進行分析,并進行非正常數(shù)據(jù)清除。
      [0015]如圖2所示,所述S2包括以下步驟:
      5201:逐個掃描設(shè)備存儲空間,獲取路徑;
      5202:判斷獲取的路徑對應(yīng)的是文件夾還是文件,若是文件夾則打開掃描文件夾內(nèi)的文件,若是文件則執(zhí)行S203 ;
      5203:解析并判斷該文件是否為SQLite數(shù)據(jù)庫文件。在該步驟中要判斷是否為SQLite數(shù)據(jù)庫文件我們先判斷該文件大小是否為512字節(jié)的整倍數(shù),若是則提取該文件前16字節(jié)的內(nèi)容,判斷是否為“SQLite Format 3”,若是則取出該文件從開始的偏移量為16的2個字節(jié),判斷是否為512字節(jié)的整倍數(shù),若是則執(zhí)行S204 ;上述判斷若有一項為否則執(zhí)行S205 ;
      5204:記錄該SQLite數(shù)據(jù)庫文件的路徑,執(zhí)行步驟S205 ;
      5205:判斷是否掃描完成,如果掃描完成,執(zhí)行S206,否則繼續(xù)掃描直至完成所有SQLite數(shù)據(jù)庫文件路徑記錄;
      5206:掃描完成后返回并存儲所有的SQLite數(shù)據(jù)庫文件的路徑。
      [0016]如圖3所示,所述S3包括一下步驟:
      5301:根據(jù)存儲的SQLite文件路徑中提取一個SQLite文件;
      5302:解析并清除master表中的非正常數(shù)據(jù);
      5303:解析并清除數(shù)據(jù)表和索引表中的非正常數(shù)據(jù);
      5304:解析并清除空閑頁面的非正常數(shù)據(jù);
      5305:判斷所有SQLite文件是否解析完成,如是則退出;如否則返回到S301。
      [0017]如圖4所示,所述S302包括以下步驟:
      53021:從master表的根頁開始,依次遍歷所有master表的頁,判斷頁類型,若為表葉子頁,則記錄下該頁頁號;若為表內(nèi)部頁,則查找該內(nèi)部頁的所有葉子頁,記錄該內(nèi)部頁的頁號及所有葉子頁的頁號。所有屬于master表的頁都遍歷完成后,返回所有的頁號,并使頁號在邏輯上形成B樹;
      53022:根據(jù)master表的B樹,依次取出頁號,讀取頁內(nèi)容。對于每個頁,判斷頁類型,在位圖上標記該頁的未分配區(qū)、自由塊、碎片。如果該頁為表內(nèi)部頁,由于不存放數(shù)據(jù),所以只做標記;如果是表葉子頁執(zhí)行S3023 ; 53023:對表葉子頁的單元進行解析,若單元含有溢出頁則對溢出頁中的碎片數(shù)據(jù)進行標記,得到SQlite數(shù)據(jù)庫的所有表信息;
      53024:將解析出來的所有表信息存儲,提供給S303使用;
      53025:根據(jù)位圖上的標記,通過構(gòu)造16進制數(shù)據(jù)(OxOO、OxFF)寫入到所有位圖標記的物理存儲位置覆蓋原有數(shù)據(jù),達到清除master表的所有標記區(qū)域數(shù)據(jù)的目的。
      [0018]如圖5所示,所述S303包括以下步驟:
      53031:從S3024得到的表信息中取出一條表信息;
      53032:判斷該表的類型;
      53033:根據(jù)表類型,創(chuàng)建不同表的對象,從表的根頁開始,依次遍歷表所有的頁,判斷頁類型,若為葉子頁,則記錄下該頁頁號;若為內(nèi)部頁,則查找該內(nèi)部頁的所有葉子頁,記錄該內(nèi)部頁的頁號及所有葉子頁的頁號找到所有表的頁面,所有屬于該表的頁都遍歷完成后,返回所有的頁號并使頁號在邏輯上形成B樹;
      S3034:根據(jù)表的B樹,依次取出頁號,讀取頁內(nèi)容,對于每個頁,判斷頁類型,在位圖上標記該頁的未分配區(qū)、自由塊、碎片的方法,如果該頁為表內(nèi)部頁,由于不存放數(shù)據(jù),所以只做標記;如果是表葉子頁以及索引頁,標記完成后對該頁面的單元內(nèi)容區(qū)進行分析;
      53035:解析頁面的單元,查看單元是否有溢出頁,如果有溢出頁,則對溢出頁中的碎片進行標記;如果沒有溢出頁,則跳過;
      53036:根據(jù)位圖上的標記,清除B樹的每個頁面中未分配區(qū)、自由塊、碎片的數(shù)據(jù);
      53037:判斷所有表是否解析完成,如果是,則退出;如果否,則返回到S3031。
      [0019]如圖6所示,所述S304包括以下步驟:
      53041:讀取SQLite數(shù)據(jù)庫空閑頁鏈表首頁指針,該指針為從開始的偏移量為32的4個字節(jié);
      53042:判斷S3041讀取的值是否為零,若為零,表示該SQLite數(shù)據(jù)庫中無空閑頁則結(jié)束;若不為零則執(zhí)行S3043 ;
      53043:讀取該空閑樹干頁內(nèi)容,并清除其中的碎片數(shù)據(jù);
      53044:判斷該空閑樹干頁下是否有空閑葉子頁,如果有,則執(zhí)行S3045 ;如果沒有,則S執(zhí)行3046 ;
      53045:讀取該空閑樹干頁下的所有空閑葉子頁,并清除每個空閑葉子頁中的碎片數(shù)據(jù);
      53046:讀取下一個空閑樹干頁的指針,該指針存放在當前的空閑樹干頁中;
      S3047:判斷下一個空閑樹干頁的指針是否為零,若為零則表示空閑鏈表已到尾部,結(jié)束;若不為零則執(zhí)行S3043。
      【權(quán)利要求】
      1.一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于包括以下步驟: 51:連接裝有SQLite數(shù)據(jù)庫的設(shè)備,建立與設(shè)備的連接通道; 52:掃描設(shè)備內(nèi)存空間中所有SQLite文件,得到存儲路徑; 53:將掃描到的SQLite文件逐個進行分析,并進行非正常數(shù)據(jù)清除。
      2.根據(jù)權(quán)利要求1所述的一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于所述S2包括以下步驟: 5201:逐個掃描設(shè)備存儲空間,獲取路徑; 5202:判斷獲取的路徑對應(yīng)的是文件夾還是文件,若是文件夾則打開掃描文件夾內(nèi)的文件,若是文件則執(zhí)行S203 ;5203:解析并判斷該文件是否為SQLite數(shù)據(jù)庫文件,若是執(zhí)行S204,否則執(zhí)行S205 ; 5204:記錄該SQLite數(shù)據(jù)庫文件的路徑,執(zhí)行步驟S205 ; 5205:判斷是否掃描完成,如果掃描完成,執(zhí)行S206,否則繼續(xù)掃描直至完成所有SQLite數(shù)據(jù)庫文件路徑記錄; 5206:掃描完成后返回并存儲所有的SQLite數(shù)據(jù)庫文件的路徑。
      3.根據(jù)權(quán)利要求1所述的一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于所述S3包括一下步驟: 5301:根據(jù)存儲的SQLite文件路徑中提取一個SQLite文件; 5302:解析并清除master表中的非正常數(shù)據(jù); 5303:解析并清除數(shù)據(jù)表和索引表中的非正常數(shù)據(jù); 5304:解析并清除空閑頁面的非正常數(shù)據(jù); 5305:判斷所有SQLite文件是否解析完成,如是則退出;如否則返回到S301。
      4.根據(jù)權(quán)利要求3所述的一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于所述S302包括以下步驟:53021:從master表的根頁開始,找到master表所有的頁面,并使頁號在邏輯上形成B樹; 53022:根據(jù)master表的B樹,解析每個頁面,對頁面的未分配區(qū)、自由塊、碎片在位圖上進行標記; S3023:對表葉子頁的單元內(nèi)容區(qū)進行解析,查看單元是否有溢出頁,如果有則對溢出頁中的碎片進行標記;如果沒有則跳過; 53024:將解析出來的所有表信息存儲,提供給S303使用; 53025:根據(jù)位圖上的標記,清除標記區(qū)域的所有數(shù)據(jù)。
      5.根據(jù)權(quán)利要求3所述的一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于所述S303包括以下步驟: 53031:從S3024得到的表信息中取出一條表信息; 53032:判斷該表的類型; 53033:根據(jù)表類型,創(chuàng)建表的對象,從表的根頁開始,找到所有表的頁面,并使頁號在邏輯上形成B樹; 53034:根據(jù)表的B樹,解析每個頁面,對頁面的未分配區(qū)、自由塊、碎片在位圖上進行標記; 53035:解析葉子頁及索引頁的單元內(nèi)容區(qū),查看單元是否有溢出頁,如果有則對溢出頁中的碎片進行標記;如果沒有則跳過; 53036:根據(jù)位圖上的標記,清除該表所有標記區(qū)域數(shù)據(jù); 53037:判斷所有表是否解析完成,如果是,則退出;如果否,則返回到S3031 ;
      6.根據(jù)權(quán)利要求3所述的一種清除SQLite數(shù)據(jù)庫中數(shù)據(jù)的方法,其特征在于所述S304包括以下步驟: 53041:讀取SQLite空閑頁鏈表首頁指針; 53042:判斷是否有空閑頁,若沒有則結(jié)束,若有則執(zhí)行S3043 ; 53043:讀取該空閑樹干頁內(nèi)容,并清除其中的碎片數(shù)據(jù); 53044:判斷該空閑樹干頁下是否有空閑葉子頁,如果有,則執(zhí)行S3045 ;如果沒有,則S執(zhí)行3046 ; S3045:讀取該空閑樹干頁下的所有空閑葉子頁,并清除每個空閑葉子頁中的碎片數(shù)據(jù); 53046:讀取下一個空閑樹干頁的指針; 53047:判斷下一個空閑樹干頁的指針是否為零,若為零則表示空閑鏈表已到尾部,結(jié)束;若不為零則執(zhí)行S3043。
      【文檔編號】G06F17/30GK104298766SQ201410585592
      【公開日】2015年1月21日 申請日期:2014年10月28日 優(yōu)先權(quán)日:2014年10月28日
      【發(fā)明者】梁效寧, 黃旭 申請人:四川秘無痕信息安全技術(shù)有限責任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1