檢查下載檔是否被調包
1.檢查檔案的方法
今天假設我們下載了一個檔案,叫做
ubuntu-20.04.2-live-server-amd64.iso
我們要如何檢查是否被High客給調包?
(High客:在網路上無時無刻情緒都很high,會使用某種魔法偷取別人的比特幣)
先找到官方往站上提供的sha哈希值
d1f2bf834bbe9bb43faf16f9be992a6f3935e65be0edece1dee2aa6eb1767423
cd指令到下載資料夾
然後用linux裡頭的程式shasum來進行檔案檢查
沒有這個程式的同學請自己下載。
用windows的同學可以找找相關的hash驗證工具。
echo "d1f2bf834bbe9bb43faf16f9be992a6f3935e65be0edece1dee2aa6eb1767423 *ubuntu-20.04.2-live-server-amd64.iso" | shasum -a 256 --check
2.hash(哈希值)是啥?
如我我們今天要檢查檔案,一個byte一個byte檢查,那顯然要下載兩份一樣的檔案才可以。
如果今天有個遊戲大小50G,就要下載100GB的兩個檔案互相比較,才知道有沒有被調包。而且要比較超級久。
改善這個的方式就是,用數學公式先對遊戲檔案進行計算,無論遊戲有多少G,算出來的結果總是只有256位元,這256個位元就是hash。
我們只要在用戶的電腦上頭算算看,看這個hash跟官方告訴我們的hash是否相同就可以了。