批次檔案雜湊與清單驗證器
一次
批次選擇或拖入多個檔案,本頁就在瀏覽器內算出每個檔案的 MD5、SHA-1、SHA-256、SHA-384 或 SHA-512 摘要。然後既可以把結果複製成
sha256sum 相容行放進你的釋出說明,也可以貼上一份校驗和清單(
SHA256SUMS、
.sha256、
.sfv、BSD
openssl dgst 輸出),讓頁面告訴你哪些檔案通過驗證、哪些不匹配、哪些缺失。任何東西都不會被上傳。
單檔案、更多演算法見
雜湊生成器。
1. 選擇檔案
拖放檔案到此處,或點選選擇
最多 50 個檔案、每個 200 MB。檔案始終留在本機。
未選擇任何檔案。
2. 演算法
— 十六進位制輸出;至少勾選一個。
3. 結果
點選任意摘要單元格即可複製。名稱和大小總是列出,因此表格也可當批次檔案大小檢視用。
4. 對照清單驗證(可選)
貼上 GNU(雜湊 檔名)、BSD(SHA256 (name) = hash)、SFV(檔名 crc32)或 plain(sha256=雜湊)格式的清單,或直接上傳 .sha256 / SHA256SUMS / .sfv 檔案本身。以 ; 開頭的行視為註釋。
隱私:每個摘要都由瀏覽器自己的 JavaScript 與 WebCrypto 引擎計算 — 檔案從不離開這個標籤頁。提示:驗證完下載後直接關閉本頁即可,什麼都沒有儲存。
什麼是批次檔案雜湊?
校驗和是檔案的一份簡短指紋:把檔案的位元組餵給雜湊函式,得到的摘要在檔案哪怕一個位元組改變時幾乎必然改變。軟體釋出方把摘要登在下載旁邊,讓你能證明收到的檔案就是他們發出的那份 — 下載沒有被截斷或損壞,也沒有人調包成別的內容。
一次下一個檔案,對單個下載來說沒問題。一旦你面對的是一個資料夾,或內含 SHA256SUMS 清單的釋出包,就需要批次版:每個檔案雜湊一次,再把清單每一行對到相應檔案上核對。本頁自動化的正是這個迴圈。
本頁能讀的清單格式
| 樣式 | 示例行 | 出處 |
| GNU | 900150983c... hello.txt | sha256sum / md5sum 輸出,Linux 發行版的 SHA256SUMS 檔案 |
| BSD | SHA256 (hello.txt) = 900150983c... | macOS/BSD 上的 openssl dgst -sha256 |
| SFV | hello.txt 1A2B3C4D | Simple File Verification 檔案,老式二進位制新聞組 |
| plain | sha256=ba7816bf... | 下載頁、釋出說明、Docker checksums |
雜湊長度本身就說明了演算法:32 個十六進位制字元是 MD5,40 是 SHA-1,64 是 SHA-256,96 是 SHA-384,128 是 SHA-512 — 所以 GNU 格式的行不需要註明是哪個程式生成的。
簡要工作原理
每個檔案由瀏覽器的 FileReader 讀取一次,交給 crypto.subtle.digest(SHA 家族)和本地 MD5 實現。摘要按十六進位制編碼,與清單條目一一對齊;只有當計算出的摘要與期望值逐字元相等時,檔案才算通過驗證。SFV 行攜帶的是 CRC-32 而不是密碼學雜湊 — 本頁會將其標記為不支援,而不是假裝 CRC 等同於摘要。
常見錯誤
「我所有檔案都不匹配。」 — 原因通常是清單對應的是另一個版本的下載。先核對檔名:匹配器比較的是基本名,所以 dist/app-1.2.bin 能匹配清單裡的 app-1.2.bin。「SHA-1 驗證通過,檔案就安全了?」 — 不是。驗證只證明位元組與釋出方釋出的一致;釋出方是否可信是另一個問題。而且 SHA-1 自 2017 年起已被碰撞攻破,有得選時優先用 SHA-256 清單。
常見問題
雜湊大檔案慢嗎? — 普通機器上大約每 200 MB 一秒;進度行會顯示批次的進度。
能驗證 CRC-32 的 SFV 清單嗎? — SFV 行會被解析並列出,但本頁不計算 CRC-32;單檔案請用加密中心的 CRC 工具。
為什麼只有十六進位制? — 實際流傳的清單都是十六進位制;base64 摘要算附加功能。
我的檔案會怎樣? — 什麼都不發生:沒有伺服器、沒有儲存、沒有分析;關掉標籤頁,輸入的每個位元組都消失了。
自測