各位同學是否覺得電腦裡的檔案都很正確呢?玩電腦的這些日子以來
想必同學們都知道個人電腦其實並不是一個相當穩定的裝置:記憶體
可能有問題、硬碟可能壞軌、主機板或CPU等裝置都可能出現問題,然而在數位
的世界中錯誤是不被允許的,有時一個文件即使只有一個bit壞掉,也可能因為
錯誤不斷地擴張而造成整份文件無法使用。除此之外,網路上還有很多
『不懷好意』的程式或者是病毒,這些程式很容易的能夠入侵你的電腦,
並在背景修改你的檔案。
Windows無法正常執行的時候,你知道是什麼原因嗎?當應用程式不正常的
時候你知道是哪個檔案有問題嗎?(或者是否為檔案的問題?)這些疑問
常常出現,卻沒有一個合適的工具來解決。
在以前資料量少的時候,也許大家不會注意到這個問題,然而跟著科技的
普及與進步,硬碟容量越來越大,在眾多的檔案之中我們需要一種辦法來
確定檔案是否是正確的。
寒假時因為有空研究密碼學,想起了這個困擾我很久的問題,於是就寫了
一個程式來解決這個問題,稱為『Data Integrity Analyzer』,可以檢查
你的檔案是否還是正確的。
其運作原理是用一種稱為『One-way hash』的演算法,該種演算法可以輸入一
堆資料然後產生一個『特徵值』,這個特徵值沒有原來輸入的資料量那麼大
,卻可以用來檢查資料的異同,這就是說:兩次輸入的資料如果相同,則
產生的特徵值就相同,相反的,輸入的資料不同(即使可能只差1-bit),
也會有截然不同的特徵值。在眾多的One-way hash中,我選擇了『MD5』
演算法,這是一個廣為流傳的One-way hash algorithm,可產生128-bit的
特徵值,而我寫的程式可以為你1.將所有檔案的特徵值存起來(存在該目錄
中的dia.md5中)2.檢查目前檔案的狀態是否與dia.md5中的特徵值相符。
如此一來,便可以偵測出是否有硬體損壞或病毒入侵。
這個程式不能將壞掉檔案救回,但至少可以讓你知道你有哪些檔案壞掉,
,這是以前你無法做到的。知道哪裡壞掉,要找出問題就容易許多了。
你可以在下面的網址下載到此程式:
http://www.csie.ntu.edu.tw/~b6506071/dia/dia.exe (336K 有視窗介面)
http://www.csie.ntu.edu.tw/~b6506071/dia/diajr.exe (87K 命令列介面)
使用方法:
dia <命令> 目錄1 [目錄2] ... [/s]
命令:
a -- 更新所有檔案
u -- 僅僅更新多出來的或刪除的檔案
c -- 檢查檔案
/s -- 包含子目錄
如果直接執行DIA而不加任何參數的話,會直接出現一個視窗,而可以使用
檔案總管用拖拉放的方式將目錄放到視窗上。
另外,在第一次執行DIA的時候,DIA即會在registry註冊,使得您在所以資
料夾上按下滑鼠右鍵即出現三個選項Integrity Check, Update Integrity,
Update new Integrity,非常的方便。
這個程式用即由 Delphi 4 寫成,full source code 在下面的網址可以取得:
http://lsd.cc.ntu.edu.tw/upload/dia/source.zip
--
Chaos is the best description of the constant state of human society.
Therefore, dynamic balance is required for us to to survive when vital fault
occurrs. So in the society, we don't chase for peace and order, but existence
and survival, instead.
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: h123.s79.ts30.h