您是否曾經下載一個檔案,只是發現該檔案已經被損壞或更改?確認檔案完整性的最佳方式是驗證檔案的校驗總和或哈希值。幸運的是,有幾種方法可以在Windows中驗證一個檔案的校驗總和。
繼續閱讀,因為您將學習到幾種免費計算Windows檔案校驗總和的方法!學習使用內建的Windows工具和第三方工具來產生一個檔案的校驗總和值。
在這篇文章中,您將學習如何使用五種不同的工具在Windows中創建校驗總和。最後,您肯定會知道如何在Windows中創建哈希值!
前提條件
由於這是一篇如何做的文章,您將遵循學以致用的方法。這篇文章中使用的一些工具是內建的或由微軟提供的;也有一些來自第三方來源。要跟隨進來,請確保您至少有一台運行Windows 10或至少是Windows Server 2012的電腦。
每種產生校驗總和的方法所需的前提條件將根據需要提供。
檔案校驗總和完整性驗證器 (FCIV)
檔案校驗總和完整性驗證器 (FCIV) 是微軟的工具,最初在Windows Server 2012 R2中引入,並可用於所有未來的版本。
假設你已在 C:\Tools\fciv.exe 安裝了 FCIV 工具。在命令提示符或 PowerShell 提示中運行以下命令以生成文件 VSCodeUserSetup-x64-1.52.1.exe 的 MD5 校驗和。如果你的文件存放在其他地方,請相應地修改位置。
運行 FCIV 命令後,你將看到類似於下面截圖中的結果。正如你所看到的,fciv.exe
命令默認為給定的文件生成了 MD5 哈希。

fciv.exe
.FCIV 只能生成 MD5 或 SHA-1 文件哈希。
現在,你已經計算出 MD5 校驗,為什麼不再生成文件的 SHA-1 校驗呢?要為上述示例中使用的同一文件創建 SHA-1 校驗,請在現有命令的末尾添加 sha1
選項。如下圖所示,為相同文件生成了 SHA-1 哈希。

fciv.exe
.幹得好!你已經創建了 MD5 和 SHA-1 校驗值。為什麼不同時生成 MD5 和 SHA-1 哈希值呢?不使用 sha1
選項,而使用 both
。由下圖可見,生成了相同文件的 MD5 和 SHA-1 哈希值。
生成的哈希值標記為 MD5 和 SHA-1。在需要生成 MD5 和 SHA-1 哈希值時,使用 both
參數可節省時間。

fciv.exe
.儘管 FCIV 是一個方便的計算文件哈希的工具,但它已經比較老舊,哈希算法僅限於 MD5 和 SHA-1。儘管如此,在缺乏其他工具的情況下,FCIV 仍然可以作為一個不錯的替代品,儘管 Microsoft 已正式宣布 FCIV 是不受支持的命令行工具。
在这一步,您已经使用 fciv.exe
工具创建了 MD5 和 SHA-1 散列值。目前您的想法如何?我知道您已准备好学习下一个工具。
使用 Certutil
Certutil 是在 Windows 中生成文件校验和的另一个优秀工具。确切的程序名称是 certutil.exe
,它已经预装。
certutil.exe
的主要目的是处理 证书。但是,certutil.exe
具有使用以下散列算法在 Windows 中创建文件校验和的功能:
- MD2
- MD4
- MD5
- SHA1
- SHA256
- SHA384
- SHA512
让我们看看它是如何工作的。
启动 PowerShell 或命令提示符以开始计算文件校验和,使用下面显示的语法。
在下面的示例中,certutil.exe
生成文件 C:\downloads\VSCodeUserSetup-x64-1.52.1.exe 的 SHA-256 散列,如结果截图所示。

certutil.exe
to create a file checksum.现在您知道如何使用 certutil.exe
创建文件校验和了。为了练习,尝试使用所有其他可用的算法生成文件的散列值。继续阅读以了解如何使用 Get-FileHash
和 PowerShell 生成文件散列!
你知道嗎,例如 SHA-256 這樣的雜湊演算法也被用於建立 SSL 憑證嗎?
使用 PowerShell 的 Get-FileHash
Cmdlet
自本文開始,您一直在閱讀和使用命令行工具來在 Windows 上創建文件校驗和檢查和校驗和檢查和校驗。您將學習如何使用的另一個命令行工具是 Get-FileHash
PowerShell cmdlet。
在使用 Get-FileHash
之前,請參考下面的語法以熟悉可用的參數。使用 Path
參數來指定目標文件,使用 Algorithm
參數來指示要使用的雜湊演算法。
可用於 Get-FileHash
的雜湊演算法如下所示。您會注意到雜湊演算法的選擇與 FCIV 和 CertUtil 提供的不同。此外,較舊且較易受攻擊的演算法已不再包括,例如 MD1 和 MD4 演算法。
- SHA1
- SHA256
- SHA384
- SHA512
- MACTripleDES
- MD5
- RIPEMD160
下面的命令使用 SHA-256 算法計算檔案 VSCodeUserSetup-x64-1.52.1.exe 的雜湊值。複製並執行下面的代碼在 PowerShell 中進行測試,請確保根據需要更改檔案路徑。
正如您在下面的截圖中所看到的那樣,Get-FileHash
命令使用了指定的 -Algorithm sha256
參數計算了檔案的 SHA-256 雜湊。

Get-FileHash
to compute the SHA-256 checksum of a file.如果您想使用不同的算法計算檔案的檢查和值,您只需要更改 Algorithm
參數的值。現在您認為您能夠使用 Get-FileHash
創建檔案的 SHA-512 校驗和值嗎?我打賭您能夠!
同時生成多個檔案的雜湊值
使用 Get-FileHash
,可以同時生成多個檔案的校驗和值。下面的示例代碼將檔案路徑列表存儲在 $files
變數中。接下來,Get-FileHash
使用 $files
變數來計算每個檔案的 SHA-256 校驗和值,如下面的截圖所示。

Get-FileHash
to compute the hash values for each file stored in the $files
array.如果您需要為一個滿是檔案的文件夾生成雜湊值怎麼辦?您可以使用 Get-ChildItem
cmdlet 來檢索給定文件夾中的檔案列表,而不是手動製作 $files
陣列。
在下面的命令中,Get-ChildItem
cmdlet 檢索了 c:\downloads 文件夾中的檔案列表。然後,將結果通過 PowerShell 管道傳遞到 Get-FileHash
cmdlet,該 cmdlet 又計算了每個檔案的 SHA-256 雜湊值。
根據檔案大小,生成校驗和檢查的時間可能會有所不同。在這個例子中,該命令大約花費了二十秒的時間來計算一個8GB的ISO檔案的校驗和檢查。結果應該與下面的截圖類似。

Get-ChildItem
and Get-FileHash
to compute the hash values for each file in a folder.在Windows中使用第三方工具創建檔案的校驗和檢查
如果由於某些原因,你發現Windows內置的工具不能滿足生成檔案的校驗和檢查的需求,那麼可以使用第三方工具。並非所有的第三方工具都是免費的,但以下是一些免費且受歡迎的工具。
7-Zip
你是否厭倦了使用命令行,並正在尋找一個可以在Windows中創建檔案的校驗和檢查的圖形化工具?7-zip是一個流行且免費的檔案壓縮工具,可以生成檔案的哈希值。
安裝7-zip後,它會自動添加右鍵菜單選項,用於生成檔案的校驗和檢查。按照以下步驟獲取檔案的哈希值:
- 右鍵單擊要生成校驗和檢查的檔案。
- 選擇CRC SHA菜單選項,列出可用的哈希算法。
- 最後,點擊所需的哈希算法。
在下面的例子中,星號(*)選項使用所有可用的算法顯示檔案的哈希值。怎麼樣,這很簡單吧?

接下來,學習如何使用HashMyFiles工具作為7-Zip的替代方法生成多個檔案的校驗和檢查。
HashMyFiles
忘記命令列和右鍵點擊。HashMyFiles 可以使用拖放功能創建單個文件、多個文件或整個目錄的檢查碼或哈希值。
啟動 HashMyFiles 程序,將文件或文件夾拖放到 HashMyFiles 主窗口以生成相應的哈希值。如下所示,主窗口以表格形式顯示文件及其關聯的哈希值,額外的信息可在屬性窗口中查看。

此外,HashMyFiles 還可以將哈希或檢查碼值匯出為 HTML 報告或制表符分隔的文件。當您想要保留文件檢查碼值的記錄時,此匯出功能非常有用。
下一步
在本文中,您已經了解到在 Windows 中創建文件檢查碼的幾種方法。Microsoft 內置了命令行工具,如 certutil.exe
和 Get-FileHash
。
還有一些免費且相對易於使用的第三方工具。無論您選擇哪種工具來生成文件哈希值,每種哈希算法的概念和結果都是相同的。
接下來呢?也許可以考驗一下您的腳本編寫技能,使用本文介紹的任何工具創建重要文件的檢查碼清單。