2015年7月7日 星期二

[Tool] 檢查檔案完整性工具 - HashMyFiles

檢查檔案完整性工具 - HashMyFiles

前一篇文章我們介紹了一款下載的小工具 - aria2,透過該工具可以完整下載大size的檔案,但如果沒有透過類似的工具下載,我們如何在下載後確認該檔案的完整性呢?

這邊介紹一款用來驗證檔案完整性的工具 - HashMyFiles,通常我們檔案可以透過特殊演算法的驗算,產生一串Hash編碼後的字串,這些演算法常見的有MD5、SHA1等,檔案透過不同的編碼後,會有特定的字串,在下載檔案後,我們可以透過驗證工具將該檔案的不同Hash編碼計算出來,經過比對得知檔案的完整性。

以前一篇文章所下載的檔案為例,該下載頁面包括了檔案編碼後的字串,如下圖。


首先,我們到HashMyFiles的官網(http://www.nirsoft.net/utils/hash_my_files.html),頁面中有下載的連結。



選擇下載的版本後,解壓縮可看到有該工具的執行檔(跟aria2一樣不需安裝)


雙擊後可開啟該工具,如下圖


選擇你所要驗證的檔案,經過一段時間計算後,在視窗內會顯示該檔案經過各種Hash編碼後的結果。與下載頁面的資訊比較一下,若相同就表示該選擇的下載檔案是完整無誤的。





[Tool] 小而巧的檔案下載工具 - aria2

檔案下載工具 - aria2

有時候我們會需要下載一些size比較大的檔案,像是一些 iso 映像檔之類的,大部分都經由網友製作的 BT 種子,但並不是每個你需要的檔案都有好心的網友製作了種子供人下載。像這樣的大檔案在透過HTTP下載時,最怕的是遇到網路問題而造成下載檔案不完整,早期我們可能會透過像FlashGet這種瀏覽器外掛來支援續傳,不過這邊介紹一款小而巧的免費工具 - aria2。

首先看一下aria2的官網(http://aria2.sourceforge.net/),提到它是一款支援多種網路傳輸協定(HTTP、FTP、BT等)的下載工具,而且是跨平台的,包括Windows、OS X、Linux,甚至Android都可以使用。


進入下載頁面,可以看到目前穩定版本的下載列表,依照使用的作業系統選擇對應的版本。


以Windows來說,下載後的檔案是一個壓縮檔,直接解壓縮即可,裡面就包括執行檔,不需額外再經過安裝程序。


aria2本身是一個Console Application,須透過命令列輸入指令與參數執行的應用程式,但其指令非常簡單,從官網看到的範例如下


基本上就是指令後面直接帶上要下載的連結或檔案路徑就可以了。以Qt安裝來說,我們在安裝教學文章(見連結)提到可以透過線上安裝,但安裝時可能會因網路狀況造成異常,故建議下載離線安裝的版本;但相對的安裝檔就大很多,透過瀏覽器直接下載也有可能會有前面提到下載檔案不完全的情況。

這邊我們以Qt for Android on Windows的離線安裝檔為例,檔案大小約1.0GB,在下載頁面上有個連結,如下圖紅框處。


點擊後會進到該檔案的詳細資訊,該頁面會列出檔案所在連結以及鏡像檔(mirror),我們不直接下載檔案,而是透過metalink(或meta4)來下載,metalink其實就是這個檔案的相關資訊,其格式類似於P2P的概念,透過支援metalink的下載工具,會自動尋找檔案來源,分區塊下載後合併,可以縮短下載時間。



開啟命令提示字元,切換目錄到aria2所在資料夾,執行該指令並帶入上面metalink的URL,就會自動開始下載。


執行後可以從畫面上看到下載進度,預設會把檔案下載到當下的資料夾。


下載完成畫面如下。


如果還是不習慣console application的話,可以參考webui-aria2這個工具,提供簡易的web介面操作aria2相關功能。