在linux中檢查文件完整性可通過md5sum和sha256sum實現。1. md5sum可用于生成md5校驗和,命令為“md5sum filename”,也可通過“md5sum -c checksums.md5”驗證文件一致性;2. sha256sum更安全,推薦使用,命令為“sha256sum filename”,批量驗證可用“sha256sum -c checksums.sha256”;3. 使用時需注意路徑正確、大小寫敏感、文本編碼影響,并可結合腳本自動化處理。
檢查文件完整性在Linux中是常見的需求,比如下載完ISO鏡像、安裝包或者傳輸文件后,我們通常會用校驗和(checksum)來確認文件是否完整無損。常用的工具就是md5sum和sha256sum,它們分別使用MD5和SHA-256算法生成文件的“指紋”,只要內容有變化,指紋就會不同。
下面我們就來看看這兩個命令怎么用,以及一些實用的小技巧。
1. md5sum的基本用法
雖然MD5算法已經被證明不夠安全,不適合用于加密用途,但在日常文件完整性驗證中仍然廣泛使用,尤其是很多老系統或第三方網站還保留著MD5值。
生成MD5校驗和:
md5sum filename
運行這個命令后,會輸出一串類似這樣的結果:
d41d8cd98f00b204e9800998ecf8427e filename
你可以把這個結果保存下來,或者跟官網提供的值對比。
驗證文件是否一致:
如果你有一個包含校驗值的文件,比如叫checksums.md5,里面的內容格式是:
d41d8cd98f00b204e9800998ecf8427e filename
那你就可以這樣驗證:
md5sum -c checksums.md5
如果文件沒問題,會顯示filename: OK;如果有問題,會提示FaiLED。
2. sha256sum更推薦使用
相比MD5,SHA-256安全性更高,也更受現代系統和發行版的青睞。大多數Linux發行版官方提供的ISO文件都附帶了SHA-256校驗值。
生成SHA-256校驗和:
sha256sum filename
輸出的結果更長一些:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 filename
同樣可以保存起來做比對。
批量驗證多個文件:
如果你一次性要驗證多個文件,可以把它們的校驗值寫進一個文件,比如checksums.sha256,然后執行:
sha256sum -c checksums.sha256
它會自動逐個檢查并報告每個文件的狀態。
3. 實際使用中的幾個小注意點
- 路徑要正確:生成校驗值時最好在目標文件所在目錄下執行命令,否則路徑不一致會導致驗證失敗。
- 大小寫敏感:校驗值是嚴格匹配的,字母大小寫不能錯,多一個空格也不行。
- 文本編碼影響:如果是從網頁復制校驗值,要注意換行符、隱藏字符等問題,建議用文本編輯器打開清理一下。
- 配合腳本使用:如果你經常需要驗證一批文件,可以寫個簡單的shell腳本自動生成或對比。
比如生成當前目錄所有文件的SHA-256值:
for f in *; do sha256sum "$f"; done > checksums.sha256
基本上就這些。這兩個命令都不復雜,但用好了能避免很多數據出錯的問題,特別是在處理重要文件的時候。