You are on page 1of 4

Source Url: http://newsletter.ascc.sinica.edu.tw/news/read_news.php?

nid=1124

檔案於網際網路傳遞之驗證 彭逸帆

前言
  隨著網際網路發展,現在許多資訊的交換皆是透過網路傳遞檔案完成;不過網際網路並
非是百分之百可以被信賴的,因此,在傳遞檔案的同時,資料的正確性也是必須考慮的因素。
  所幸,相關密碼學技術的應用,使得檔案於網路傳遞後的正確性得以被驗證,其中最常
被使用的技術即是 MD5(Message-Digest algorithm 5)雜湊演算法。
  由於 MD5 相關演算法較為複雜,筆者在此不予敘述,其詳情可以參考 Internet RFC
1321【註 1】。簡言之,MD5 雜湊演算法可以將任意長度的資料經由運算之後,得到一組固
定長度為 128 位元(32 個十六進制數字)的結果,使用這個結果當作檢查碼(Checksum),
只需要比對檢查碼是否一致,便可得知經過傳遞之後的檔案是否與原檔案完全相同。
  以一般使用者最常下載的賽門鐵克病毒碼【註 2】為例,該網站除了會提供檔案供用戶
下載使用之外,底下也會附上一組 Checksum,以【圖 1】為例:20060704-018-i32.exe 是可以
下載的位置的鏈結;
077D8B1B4844322B3C3A513B37AB72C2 則是之前所提到的檢查碼。

圖 1 賽門鐵克病毒碼下載網頁
  當使用者下載完畢,只需要使用軟體加以運算之後,同樣也會得到一組檢查碼,比對經
過計算的檢查碼與網頁上所顯示的檢查碼是否相同,即可得知下載的檔案是否正確。
工具
  一般在 Linux 的環境之下可以直接使用 md5sum 這個指令直接進行運作。以先前提到的
病毒碼下載為例,當檔案下載完畢後,僅需輸入如【圖 2】中的指令,即可產生一組號碼,
即為檢查碼。

圖 2 Linux 環境下進行檢查碼的計算
  使用者可以直接比對計算得到的結果是否與網頁上所提供的檢查碼一致,如為一致,則
可以確定檔案下載無誤。
  而在 Windows 的環境下,則是有相當多軟體可以支援檢查碼的計算,除了在 Dos 環境底
下的 md5【註 3】、md5sum【註 4】、…等,也有視窗介面的操作軟體,如 WinMD5【註
5】。
  以 Dos 的 md5 為例,執行指令的方法與 Linux 執行 md5sum 類似,只需要輸入類似如
【圖 3】所示的指令,即可得到檢查碼。

圖 3 Dos 底下 md5 檢查畫面


  以視窗的 WinMD5 為例,執行也很簡便,只需要以該軟體將需要檢查的檔案打開,經過
計算之後,即會顯示該檔案的檢查碼,如【圖 4】所示。

圖 4 WinMD5 執行畫面
應用
  再如數位典藏計畫在進行相關文件、圖片、地圖等的數位化後,往往都會透過網際網路
將該檔案備份存放,由於其檔案的價值相當重要,因此必須確保其數位化之後的檔案經過網
路傳遞過程之後仍正確無誤,此時即可應用到之前提到的觀念。其流程圖如【圖 5】所示。

圖 5 檔案傳遞及驗證流程
  首先,將數位化完畢的檔案在傳遞之前先進行檢查碼的計算。以 md5sum 軟體為例,輸
入如【圖 6】的指令,即可計算整個資料夾的檢查碼,同時將檢查碼儲存於 checksum.txt 檔案
中。
圖 6 以 md5sum 軟體計算資料夾檔案的檢查碼
  而 checksum.txt 的檔案內容會如【圖 7】的樣子,其中,右邊的部份是該檔案的名稱,而
檔案名稱的左邊則是該檔案的檢查碼。

圖 7 checksum 的內容
  接著,則是將已經數位化完畢的檔案透過網際網路傳遞至另一方的主機上。
  再來,則是在目的地的主機執行類似【圖 8】的指令,進行檔案檢查碼的驗證。如果檔
案驗證無誤,則會出現 OK 的字樣,如果失敗則會出現 FAILED 的訊息;最後的訊息會告知
所有檔案驗證的結果。
圖 8 以 md5sum 軟體進行檔案驗證
  藉由這樣的方式,即可得知檔案透過網路傳遞之後是否有誤。
結論 
  檔案於網際網路中傳遞並無法確保能夠百分之百地正確,本文介紹了一些簡單的程式與
使用方法,藉以說明檔案經過傳遞之後應該如何驗證檔案的正確性,提供有興趣的讀者們參
考。
參考資料
【註 1】Internet RFC 1321,http://theory.lcs.mit.edu/~rivest/Rivest-MD5.txt
【註 2】賽門鐵克病毒碼下載區,http://www.symantec.com/avcenter/download/pages/US-N95.html
【註 3】MD5: Command Line Message Digest Utility,http://www.fourmilab.ch/md5
【註 4】 md5sum,http://www.etree.org/md5com.html
【註 5】WinMD5,http://www.blisstonia.com/software/WinMD5

Rate