我嘗試了 checksum Fedora Workstation 29 和 Fedora KDE Plasma,但總是失敗。我做錯了什麼嗎?
細節:
我在 Powershell 中使用 Windows -> 命令:
對於 KDE:
$image = "Fedora-KDE-Live-x86_64-29-1.2.iso"
$checksum_file = ""Fedora-Spins-29-1.2-x86_64-CHECKSUM"
$sha256 = New-Object -TypeName System.Security.Cryptography.sha256CryptoServiceProvider $expected_checksum = ((Get-Content $checksum_file | Select-String -Pattern $image) -split " ")[0].ToLower()
$download_checksum = [System.BitConverter]::ToString($sha256.ComputeHash([System.IO.File]::ReadAllBytes("$PWD\$image"))).ToLower() -replace '-', ''
echo "Download Checksum: $download_checksum"
Download Checksum: 5f7103a79e705bc1be95b7a2350b82cae857196542396cec0e3e7dfd7d16815a
echo "Expected Checksum: $expected_checksum"
Expected Checksum: #
if ( $download_checksum -eq "$expected_checksum" ) { echo "Checksum test passed!" } else { echo "Checksum test failed." }
Checksum test failed.
對於工作站:
$image = "Fedora-Workstation-Live-x86_64-29-1.2.iso"
$checksum_file = "Fedora-Workstation-29-1.2-x86_64-CHECKSUM"
$sha256 = New-Object -TypeName System.Security.Cryptography.sha256CryptoServiceProvider
$expected_checksum = ((Get-Content $checksum_file | Select-String -Pattern $image) -split " ")[0].ToLower()
$download_checksum = [System.BitConverter]::ToString($sha256.ComputeHash([System.IO.File]::ReadAllBytes("$PWD\$image"))).ToLower() -replace '-', ''
echo "Download Checksum: $download_checksum"
Download Checksum: 653cc283749100e9b46625d23938ff890ae29482bef142f5a0f99c5a5ddc03e9
echo "Expected Checksum: $expected_checksum"
Expected Checksum: #
if ( $download_checksum -eq "$expected_checksum" ) {echo "Checksum test passed!"} else {echo "Checksum test failed."}
Checksum test failed.
答案1
編輯:這個答案是假設 iso 檢查是在 Linux 中進行的。事實證明它是在 Windows 中。因此,本地下載目錄可能與我提到的不同(只需替換您的實際下載目錄),並且 Windows 可能不會捆綁校驗和實用程式。
免費的校驗和實用程式隨時可用。我已經離開 Windows 一段時間了,但只要 Google 一下“windows sha256 checksum”,就會有大量的連結和建議。這些都是簡單的實用程序,因此即使是舊的建議也可能沒問題。你不需要任何花俏的東西;在您的 Windows 版本中執行並計算 sha256 哈希值的任何內容。所以你的 Windows 命令可能與我下面顯示的不同;只需按照您使用的實用程式的簡單說明進行操作即可。
每隔一段時間,我就會遇到同樣的問題,即 iso 校驗和不匹配。 Fedora 似乎經常發生這種情況。我發現,雖然許多發行版已經使檢查過程變得防彈(幾乎沒有機會獲得損壞或被篡改的 iso),但它們為良好的 iso 引入了多個潛在的故障點。這裡的情況似乎就是這樣。複雜的過程無法獲得好的 iso。
正如背景一樣,校驗和可讓您驗證 iso 是否未損壞。直到最近,發行版才提供校驗和,以便您可以驗證是否下載了正確的 iso。但是,iso 可能被篡改,校驗和文件也可能被篡改。因此,一些發行版制定了一些複雜的程序,使您能夠很好地確保與 iso 進行比較的校驗和沒有被篡改。
即使在沒有這些保護措施的情況下,也很難對文件進行這種「無法檢測到」的篡改。重複的驗證可以使任何此類篡改很快被發現,而新程式的存在甚至會阻止駭客嘗試。因此,我不再搞亂容易出現問題的程序,而是以舊方式直接將 iso 校驗和與發布的值進行比較。 (所以我只有 99.999% 免受破壞,而不是 99.999999999%;我過著狂野的生活。)
已發布的校驗和位於與 iso 相同的儲存庫中的檔案中。當您下載 iso 時,Fedora 會將您帶到一個頁面,其中包含校驗和文件的下載鏈接,並且該文件現在應該已經位於您的下載目錄中。
您遵循的過程已經提取了已發布的校驗和值,這些值顯示在您的問題中。我剛剛測試了KDE,其校驗和開始5f7103a...
你可以自己驗證工作站iso。
只需打開終端並導航到您的下載目錄(通常是預設下載位置)。如果是,並且您的終端預設開啟到您的主目錄,只需輸入:
cd Downloads
(注意大小寫)。若要驗證下載位置,請鍵入:
dir *.iso
你應該看到它。
不同的發行版使用不同的校驗和。 Fedora 的是 sha256。您可以使用內建指令產生校驗和:
sha256sum *.iso
處理文件需要一分鐘的時間,並且會顯示校驗和值。將其與同一 iso 的已發布值進行比較。如果它們匹配,那麼您下載損壞的 iso 的可能性就非常小。您下載了帶有偽造校驗和的被破壞 iso 的可能性(並且即使發生也沒有被捕獲),是微不足道的。