Linux、Windows 下手動生成 sha256 等類型的校驗文件


1 - 校驗文件的作用

從網服務器下載文件,尤其是比較大的文件時,很容易由於網絡不穩定,導致斷點續傳發生錯誤。

那要怎么確保下載文件的正確有效呢?

比較常見的做法是:提供下載服務的網站,在提供真實文件的同時,會提供該文件的校驗值,比如 MD5,SHA1,SHA256 等某種格式,下載完文件后,計算它的校驗值,如果和網站提供的一致,說明文件未損壞。

關於校驗值:

校驗值是一組 16 進制數,不區分大小寫。

校驗值本身只與文件內容有關,只要文件內容不改變校驗值就不變,比如拷貝、移動、修改文件創建時間/訪問時間、修改文件讀/寫/執行權限等操作都不會導致校驗值發生改變。

2 - Linux 下生成校驗文件

(1) 生成校驗文件:

# 生成 md5 檢驗文件,檢驗文件的名稱及后綴可自由定義,但一般情況下與文件名稱相同:
md5sum file.tar > file.tar.md5

# 生成 sha1 校驗文件:
sha1sum file.tar > file.tar.sha1

# 生成 sha256 檢驗文件:
sha256sum file.tar > file.tar.sha256

(2) 校驗某個文件:

# 以 sha256 為例,需要待校驗的文件,以及 sha256 文件:
sha256sum -c file.tar.sha256

如果輸出【file.tar: OK】,說明文件校驗成功。

3 - Windows 下生成校驗文件

(1) Windows 自帶了 certutil 工具,支持的算法有:MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512。

通過 cmd 命令行進入文件所屬目錄,就可以用 certutil 工具來生成需要的校驗文件了:

certutil -hashfile file.zip MD5 >> MD5.txt
certutil -hashfile file.zip SHA1 >> SHA1.txt
certutil -hashfile file.zip SHA256 >> SHA256.txt

(2) 如果你安裝了 Git Bash,那還可以使用類似 Linux 的命令:

sha256sum.exe file.zip >> file.zip.sha256

注意:Windows 下的方式 (1) 生成的校驗文件,與 sha256sum 工具生成的校驗文件不通用:

$ cat Linux.sha256
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de file.zip

# Windows 下方式 (2) 生成的校驗文件中有一個 * 號:
$ cat Win.sha256
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de *file.zip

# Windows 下方式 (1) 生成的校驗文件與 sha256sum 工具生成的文件內容明顯不一致:
$ cat Win_certutil.sha256
SHA256 ▒▒ FusionInsight_UpdateService_6.5.0to6.5.1_RHEL.tar.gz ▒▒ϣ:
26088313ed187d6dbaed81601c536ba62c71109862720bc9b5f6eaba03e456de
CertUtil: -hashfile ▒▒▒▒ɹ▒▒▒ɡ▒

建議優先使用 Linux 系統下的工具生成校驗文件;

若無 Linux 環境,可使用 Git Bash 等工具中的 sha256sum.exe

參考資料

https://blog.csdn.net/qq_28082757/java/article/details/78541581

https://blog.csdn.net/xkwy100/java/article/details/80297968


版權聲明

作者:瘦風(https://healchow.com)

出處:博客園-瘦風的南牆(https://www.cnblogs.com/shoufeng)

感謝閱讀,公眾號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注🤝

本文版權歸博主所有,歡迎轉載,但 [必須在頁面明顯位置標明原文鏈接],否則博主保留追究相關人士法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM