用Go校正下載檔案之SHA256

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

    用GO校正下載檔案之SHA256

    原來對電腦和網路使用安全這塊不夠重視,用了N多年盜版的作業系統和辦公軟體,為了破解使用過各種啟用軟體,也安裝使用過很多別人破解過的軟體;網路下載的檔案從不校正。慢慢地,自己越來越謹慎,現在只使用正版的Windows作業系統,或者開源的Linux作業系統,開源的辦公軟體。。。,總之一句話,來路不明的軟體盡量不用,或者在虛擬機器上使用。從各種官方網路下載的檔案,如果提供了校正碼,一定要對檔案進行校正。

    從現在開始,從go開始,用go實現sha256來校正golang官方下載的go安裝檔案。go的crypto包提供了很多安全相關的演算法,實現檔案sha256校正是非常簡單的,下面直接上代碼。

 

package mainimport ("crypto/sha256""fmt""io""log""os")func main() {if len(os.Args) != 2 {fmt.Printf("Usage: %s filename\n", os.Args[0])}h := sha256.New()f, err := os.OpenFile(os.Args[1], os.O_RDONLY, 0666)if err != nil {log.Fatal(err)}defer f.Close()buf := make([]byte, 1<<20)for {n, err := io.ReadFull(f, buf)if err == nil || err == io.ErrUnexpectedEOF {_, err = h.Write(buf[0:n])if err != nil {log.Fatal(err)}} else if err == io.EOF {break} else {log.Fatal(err)}}rslt := h.Sum(nil)fmt.Printf("%x\n", rslt)}

  go build 產生 sha256.exe

    從golang官方下載最新windows 安裝包 go1.9.1.windows-386.msi   校正碼 c939b62e32ba3048321546a111c732868b66fe1b58ae9c12b723a02a6a02b27c

 

下載安裝包後,執行

D:\mygo\src\sha256>sha256.exe go1.9.1.windows-386.msi
c939b62e32ba3048321546a111c732868b66fe1b58ae9c12b723a02a6a02b27c

 

然後sha256.exe的輸出和官方提供的校正比對

 

通過Beyond Compair比較工具比較發現,下載的檔案是正確的。

通過這樣一小段代碼,可以體驗到go語言的強大,用go實現各種校正都很容易。(校正只是安全的一小步,如果受到中間人攻擊,頁面文字和連結都被篡改,校正成功也可能是染毒或染馬的檔案)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.