Checksum 校驗和&檢查檔案正確性

宅技術YC
4 min readDec 1, 2020

--

Photo by Alex on Unsplash

關鍵指令

# mac
$ shasum -a 256 <FilePath>
# linux
$ sha256sum <FilePath>
# windows
$ certUtil -hashfile <FilePath> SHA256

使用情境

在使用上傳下載檔案時,不管是透過軟體 anydesk/ teamviewer或瀏覽器下載,或是使用指令 curl/ wget 下載完檔案,往往只能透過試著打開檔案來檢查檔案是否正常,在不同作業上檔案大小是不一定相同的。但是對於安裝檔/壓縮檔這類型的檔案,往往不是這麼適合直接打開來看看功能是否正常,這是就需要使用 hash 函數來幫我們校驗。

產生檔案

使用 echo 來製造實驗檔案方便觀察。

# 產生一個文件檔 test
$ echo 'abc' > test.txt
$ ls -lh
-rw-r--r-- 1 root root 4 Dec 1 13:44 test.txt
$ sha256sum test.txt
edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb test.txt

對照組

接著在不同時間產生另外一個相同內文的檔案。

# 產生一個文件檔 test2
$ echo 'abc' > test2.txt
$ ls -lh
-rw-r--r-- 1 root root 4 Dec 1 13:44 test.txt
-rw-r--r-- 1 root root 4 Dec 1 13:48 test2.txt
$ sha256sum test2.txt
edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb test2.txt

顯然檔案不會因為檔案名稱跟製造時間不同而改變 hash值,這在不同作業系統也有相同結果。

相關演算法

這類雜湊函式 Hash function 其實不只有一種,常見的有 MD5 / SHA-1 也是有相同的功用。

相關連結

--

--

宅技術YC
0 Followers

不用很厲害才能開始,但要開始變得很厲害。