使用 PowerShell 計算檔案的 MD5 與 SHA 等檢查碼(checksum),確認檔案內容有無損壞或是遭到竄改。
當我們透過網路分享一些重要的檔案時,如果擔心檔案在傳輸的過程出現問題,或是遭到有心人士竄改內容等,就可以在發佈檔案之前,先計算檔案的檢查碼(checksum),而在分享檔案的同時也一併附上檔案的檢查碼,這樣接收者只要計算檔案的檢查碼,並確認自己算出的檢查碼與發佈者的檢查碼相同,就可以確保收到的檔案是完全相同的。
計算檢查碼
若要在 Windows 中計算檔案的檢查碼,最簡單又快速的方式就是使用 PowerShell 內建的 Get-FileHash
指令,不需要安裝任何軟體即可立即使用。例如若要計算 iris.csv
這一個檔案的檢查碼,可以執行:
# 計算檔案的檢查碼 Get-FileHash iris.csv
檢查碼演算法
Get-FileHash
指令預設會使用 SHA256
的演算法來計算檢查碼,若要使用其他不同的演算法,可以用 -Algorithm
參數來指定演算法的名稱,例如計算傳統上常用的 MD5 檢查碼:
# 計算 MD5 檢查碼 Get-FileHash iris.csv -Algorithm MD5
除了 SHA256
與 MD5
之外,可用的演算法還有 SHA1
、SHA384
與 SHA512
。
# 計算 SHA1 檢查碼 Get-FileHash iris.csv -Algorithm SHA1 # 計算 SHA384 檢查碼 Get-FileHash iris.csv -Algorithm SHA384 # 計算 SHA512 檢查碼 Get-FileHash iris.csv -Algorithm SHA512
詳細輸出
預設的 Get-FileHash
指令輸出並不會標示其所使用的演算法,若想要讓輸出的訊息可以直接看出使用的演算法,可以配合 Format-List
指令,將所有的資訊都輸出來:
# 詳細輸出 Get-FileHash iris.csv -Algorithm MD5 | Format-List
參考資料:How-To Geek