免費工具

檔案校驗和

被掉包的檔案看上去和真的一樣:同樣的檔案名、同樣的大小、同樣的圖標。唯一能分辨它們的就是校驗和——內容的一段簡短指紋。把檔案拖進來,和作者公佈的那一串比一比:對得上,就是這個檔案;對不上,就是另一個檔案。

在瀏覽器裏計算:檔案不會上傳到任何地方。

把檔案拖到這裏 或者

檔案在標籤頁的內存裏讀取。預設算 SHA-256;SHA-1 和 SHA-512 在結果旁邊的按鈕裏。

怎麼校驗我們的應用

網站上每一個下載旁邊都放着一個裝有基準校驗和的檔案: 404vpn.apk.sha256, tunnel.apk.sha256404vpn-macos.dmg.sha256。開啟你要的那個,把裏面的字符串複製到上面的輸入框,再把下載好的檔案拖進來——頁面會直接告訴你對上了沒有。

這同時也回答了“我是不是被塞了一個假的 APK”。Android 不會顯示我們的檔案和別人同名檔案之間有什麼區別,校驗和會。

一點限制

校驗和是按整個檔案算的,為此整個檔案都要進到標籤頁的內存裏。幾百兆瀏覽器扛得住,幾十 GB 的鏡像就不行了。這種檔案用命令行更穩妥: shasum -a 256 檔案 用於 macOS 和 Linux, certutil -hashfile 檔案 SHA256 用於 Windows。

下載了我們的應用?

比對一下校驗和,確認你手上的確實是我們的檔案,而不是別人同名的重打包版本。

404 VPN 下載 →

常見問題

guest@404vpn:~$ cat file-hash-faq.md
[01] $ 檔案是從官網下的,還要比對校驗和嗎?
> 要,因為網站和你的硬盤之間還有一段路:被感染的路由器、往頁面裏插廣告的電訊商、公共 Wi-Fi,或者一個“下載更快”的鏡像,都可能把檔案換掉。HTTPS 能防住很多情況,但防不住你以為是同一個地址、其實是從另一個地址下載的。校驗和給的答案沒有歧義。
[02] $ 哪一串才是對的,從哪裏拿?
> 從檔案的作者那裏拿。我們每一個下載旁邊都放着一個 .sha256 後綴的檔案,基準值就在裏面。要緊的是:基準值必須來自你信任的來源,而不是來自你拿到可疑檔案的同一個地方。否則檔案和旁邊的校驗和可以一起被偽造。
[03] $ 校驗和對不上——這説明什麼?
> 説明這不是那個檔案。原因也可能無害:下的是另一個版本、下載中斷檔案不完整、壓縮包被重新打包過。但判斷要反過來:在校驗和對上之前,就把它當作來路不明的檔案,別運行。
[04] $ 為什麼用 SHA-256 而不是 MD5?
> MD5 早就被攻破了:今天在一台普通電腦上,幾分鐘就能湊出另一個校驗和相同的檔案,偽造品正是這樣塞進來的。它已經不能用來驗證真偽。SHA-1 稍好一點,但同樣被認為不合格;我們提供它,只是為了那些從來沒公佈過別的校驗和的老檔案。
[05] $ 檔案真的不會發到你們那裏嗎?
> 真的:頁面在標籤頁的內存裏讀取它,用瀏覽器內置的 WebCrypto 計算校驗和。整個過程不發生任何網絡請求——在開發者工具的“網絡”標籤裏就能看到。為了檢查檔案有沒有被掉包,反倒把它傳到別人的伺服器上,那是個奇怪的主意。