Windows 檔案 MD5 校驗:PowerShell 操作與差異排查

用 PowerShell 對原始檔案計算 MD5、複製正確摘要欄位,並排查路徑、版本與位元組差異。

先確認預期值的來源

下載頁發布的校驗值必須與演算法、版本、檔案一一對應。參考值是 MD5,就不能用 SHA-256 比較。檔案與摘要若來自同一個不可信鏡像,可能被一起替換;請先確認發布管道,再核對數值,不要僅憑相符提示便認定程式安全。

在 PowerShell 計算本機檔案

將路徑換成實際檔案。引號讓含空格的路徑保持完整,LiteralPath 將方括號等看似萬用字元的符號當成檔名本身。MD5 不是指令預設演算法,請保留明確的演算法參數。

Get-FileHash -LiteralPath 'C:\Downloads\example.zip' -Algorithm MD5

讀取 Hash 欄位,而不是 Path 欄。PowerShell 常用大寫顯示十六進位,本工具預設小寫;只要完整位元組一致,字母大小寫不影響比較。不要為改變顯示而編輯檔案內容。

使用可控樣本檢查流程

準備一個 UTF-8 檔案,僅含 abc 三個位元組,沒有引號、結尾換行或位元組順序記號。MD5 應為 900150983cd24fb0d6963f7d28e17f72。某些編輯器儲存時會加換行,那已經是另一個輸入,結果改變並非工具失效。

在瀏覽器檔案工具選取同一個已儲存檔案,演算法設為 MD5。預期值欄位只貼 32 個十六進位字元,不加入檔名、演算法前綴或整行終端機輸出。首尾貼上空白可以清理,內部空格會被判為格式錯誤,而非一般不相符。

不相符時不要修改檔案湊結果

先等待下載完成,再核對版本與來源,確認沒有把壓縮檔和解壓後的檔案混在一起比較。重新命名一般不改變內容摘要,重新壓縮卻可能改變封存中繼資料。無法讀取、失敗或取消,不是已完成計算卻不相符。

若無法確認預期位元組,應重新向發布者取得檔案。需要抵抗刻意竄改時,請遵循發布者的數位簽章驗證流程。MD5 數值相同不是身分驗證,也不是惡意軟體掃描。

瀏覽器與命令列的分工

瀏覽器適合少量本機檔案佇列、進度顯示與直接比較;PowerShell 適合自動化及超過瀏覽器保護限制的檔案。本工具單檔限制為 1 GiB,不代表所有手機都能迅速完成最大工作。兩種方式都不需要為了本機摘要而上傳檔案。

相關工具與指南

Microsoft Get-FileHash

常見問題

Get-FileHash 命令必須指定 MD5 嗎?

需要。重現 MD5 參考值時,應保留 -Algorithm MD5;此命令預設使用 SHA-256。請將範例路徑換成實際要核對的已儲存檔案。

PowerShell 顯示大寫,會影響 MD5 核對嗎?

不會。十六進位字母大小寫代表相同位元組。比對時應保留完整的 32 個 MD5 字元,不包含檔名或其他命令輸出欄位。

其他雜湊與校驗工具