在 Windows 系統中使用 SHA-256 檢查檔案完整性

若要檢查 Windows 中的檔案是否與已知安全副本匹配,請計算其 SHA-256 雜湊值,並將結果與檔案發佈者公佈的值進行比較。 Windows 內建了 PowerShell Get-FileHashcmdlet 和certutil指令,因此無需第三方校驗和工具。雜湊值本身只是一個指紋;只有在擁有可信的參考值時,它才能確認匹配。

文件哈希值能告訴你什麼

哈希值是根據檔案內容計算出的固定長度值。檔案名稱和副檔名並不決定哈希值,但更改檔案內容通常會改變哈希值。如果兩個檔案具有相同的 SHA-256 雜湊值,則出於實際的檔案檢查目的,它們的內容相同。雜湊值不匹配意味著位元組不同;但這並不能揭示原因,例如下載不完整、版本不同、驅動器損壞或有意更改。

下載時,參考連結應來自軟體發布商的官方網站,並且與您下載的檔案、版本和架構完全一致。從不受信任的鏡像網站複製的校驗和並不能證明文件的真實性。如果發布商沒有公佈雜湊值,那麼在本機計算雜湊值也無法驗證檔案的真實性。

使用 PowerShell 檢查下載的文件

  1. 找到發行商的 SHA-256 值。開啟官方下載頁面,確認其校驗和與相同版本和檔案名稱相符。複製完整的 SHA-256 值以進行比較。
官方下載頁面在 Windows 下載資料夾中的 setup.exe 檔案旁邊顯示了一個 SHA-256 欄位。
首先找到您下載的確切版本的發行商的 SHA-256 值。
  1. 開啟 PowerShell 或 Windows 終端機。在「開始」功能表中搜尋 PowerShell,或從「開始」功能表開啟「終端」。只需標準使用者會話即可對普通檔案進行哈希處理;無需管理員權限。
Get-FileHash -LiteralPath "C:\Users\YourName\Downloads\installer.exe" -Algorithm SHA256

將範例路徑替換為檔案的完整路徑,如果路徑包含空格,則保留引號。此指令會列印演算法、哈希值和路徑。 PowerShell 預設使用 SHA-256,但指定演算法名稱可以明確進行比較。 Microsoft 在Get-FileHash 參考文件中記錄了該指令及其支援的參數。

Windows PowerShell 顯示下載資料夾中安裝程式的 Get-FileHash 指令
使用要檢查的檔案的完整路徑執行 Get-FileHash 命令。
  1. 比較完整的雜湊值。檢查輸出是否顯示為 SHA256,然後將雜湊值中的每個字元與發布者的校驗和進行比較。字母大小寫無關緊要,但省略或多餘的字元會影響結果。您也可以讓 PowerShell 回傳一個簡單的結果:
$expected = "PASTE_THE_PUBLISHED_SHA256"
$actual = (Get-FileHash -LiteralPath "C:\Users\YourName\Downloads\installer.exe" -Algorithm SHA256).Hash
$actual -eq $expected

結果為True「是」表示本機計算值與您輸入的值相符;False結果為「否」表示兩者不符;請在得出結論前,重新檢查您複製的校驗和是否正確,以及是否選擇了相符的下載檔。

PowerShell 會在發佈者的 SHA-256 值旁顯示 SHA256 結果,以便進行比較。
將完整的本機雜湊值與相同檔案的已發布校驗和進行比較。
  1. 謹慎處理校驗和不符的情況。在無法解釋不符原因之前,請勿開啟或安裝該文件。刪除或隔離該副本,然後從發行商的官方網站重新下載,並重複校驗。確認您沒有將較新版本、不同語言版本或不同處理器版本的校驗和與較舊的校驗和進行比較。
SHA-256 比對結果匹配則標記為匹配,不匹配則提示從官方來源重新下載。
如果文件不匹配,則表示該文件與參考文件不同;請先核實版本並重新下載後再使用。

使用 CertUtil 的命令提示符

如果您喜歡使用命令提示符,請在 Windows 終端機或命令提示字元視窗中執行以下內建命令:

certutil -hashfile "C:\Users\YourName\Downloads\installer.exe" SHA256

讀取命令輸出行之間列印的雜湊值,並將其與相同的發布者值進行比較。 CertUtil 官方文件將其描述-hashfile為產生並顯示文件的加密雜湊值。

MD5、SHA-1 和 SFV 文件呢?

較舊的下載頁面可能會提供 MD5 或 SHA-1 值,且.sfv檔案包含一組檔案的 CRC-32 校驗和。將這些格式與可信任的原始清單進行比較,仍然有助於檢測一些意外傳輸錯誤。但它們並非驗證下載真實性的安全方法。微軟指出,MD5 和 SHA-1 已不再被認為具有足夠的安全性,無法抵禦攻擊;如果發布者提供 SHA-256,請使用 SHA-256。如果舊版資源僅提供 MD5 值,請將其視為有限的變更檢查,而非信任證明。

檢查 Windows 系統檔案是另一項任務。

Get-FileHash它會根據您提供的參考資訊檢查文件;它並不知道 Windows 系統文件應該包含什麼內容。對於受保護的 Windows 文件,請從提升權限的終端使用系統文件檢查器 (SFC):sfc /verifyonly掃描但不修復,而sfc /scannow掃描並嘗試修復。 Microsoft 在其SFC 命令參考中列出了這些選項。對於下載的檔案、壓縮檔案、備份檔案以及其他具有可信任校驗和的文件,請使用雜湊方法。

留下評論

如何在 Windows 7 中更新裝置驅動程式

如何在 Windows 7 中更新裝置驅動程式

找到與 Windows 7 相容的驅動程序,透過裝置管理員或製造商提供的軟體包進行安裝,如果裝置停止工作,則回滾驅動程式。

如何編輯NVIDIA BIOS:更改VBIOS之前的快速檢查

如何編輯NVIDIA BIOS:更改VBIOS之前的快速檢查

了解 NVIDIA BIOS 編輯器是否支援您的 GPU、如何備份顯示卡 VBIOS 以及何時使用更安全的調優工具或廠商韌體工具。

如何在命令提示字元中變更標題欄

如何在命令提示字元中變更標題欄

使用標題命令重新命名命令提示字元視窗、設定可重複使用的捷徑標籤或防止 Windows 終端選項卡標題重設。

字幕編輯:一款強大的字幕編輯和同步工具

字幕編輯:一款強大的字幕編輯和同步工具

Subtitle Edit 是一款免費開源的字幕編輯器,支援 Windows、macOS 和 Linux 系統。學習如何校正文字、調整時間軸、與影片同步以及儲存為其他格式。

使用 SeaTools 診斷和修復 Seagate 或 Maxtor 硬碟

使用 SeaTools 診斷和修復 Seagate 或 Maxtor 硬碟

使用 SeaTools 檢查 Seagate 或 Maxtor 硬碟,運行安全且長時間的診斷程序,解釋結果,並在嘗試「修復所有」之前了解資料遺失的風險。

如何在本機網路或網際網路上使用 TinyTalk 進行語音聊天

如何在本機網路或網際網路上使用 TinyTalk 進行語音聊天

了解 TinyTalk 的直接 IP 語音聊天工作流程,準備麥克風,將兩台 PC 連接到區域網,並了解為什麼網路通話需要格外注意。

如何在WinRAR中批次解壓縮受密碼保護的RAR文件

如何在WinRAR中批次解壓縮受密碼保護的RAR文件

一次提取多個受密碼保護的 RAR 壓縮文件,將每個壓縮文件保存在自己的資料夾中,並排查密碼和分割磁碟區。

在 Windows 系統中使用 SHA-256 檢查檔案完整性

在 Windows 系統中使用 SHA-256 檢查檔案完整性

使用 PowerShell 或 CertUtil 計算 SHA-256 雜湊值,將其與發布者的校驗和進行比較,並了解不匹配之處。

如何在 PhotoStage 中製作帶有音樂和旁白的照片幻燈片

如何在 PhotoStage 中製作帶有音樂和旁白的照片幻燈片

使用 PhotoStage 從照片或影片建立幻燈片,安排時間,新增背景音樂和語音旁白,然後匯出影片進行分享。

在 Chrome 或 Edge 瀏覽器上接收 Facebook 通知

在 Chrome 或 Edge 瀏覽器上接收 Facebook 通知

在瀏覽器中啟用 Facebook 桌面通知,選擇 Facebook 發送的提醒,並修復 Windows 或 macOS 中被封鎖的提醒。