Go語言筆記:base64/sha1的使用

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

1.base64編碼

package main//這個文法引入了 encoding/base64 包並使用名稱 b64代替預設的 base64。這樣可以節省點空間。import b64 "encoding/base64"import "fmt"func main() {    //這是將要編解碼的字串。    data := "abc123!?$*&()'-=@~"    //Go 同時支援標準的和 URL 相容的 base64 格式。編碼需要使用 []byte 類型的參數,所以要將字串轉成此類型。    sEnc := b64.StdEncoding.EncodeToString([]byte(data))    fmt.Println(sEnc)    //解碼可能會返回錯誤,如果不確定輸入資訊格式是否正確,那麼,你就需要進行錯誤檢查了。    sDec, _ := b64.StdEncoding.DecodeString(sEnc)    fmt.Println(string(sDec))    fmt.Println()    //使用 URL 相容的 base64 格式進行編解碼。    uEnc := b64.URLEncoding.EncodeToString([]byte(data))    fmt.Println(uEnc)    uDec, _ := b64.URLEncoding.DecodeString(uEnc)    fmt.Println(string(uDec))    //標準 base64 編碼和 URL 相容 base64 編碼的編碼字串存在稍許不同(尾碼為 + 和 -),但是兩者都可以正確解碼為原始字串。}/*運行結果如下:$ go run base64-encoding.goYWJjMTIzIT8kKiYoKSctPUB+abc123!?$*&()'-=@~YWJjMTIzIT8kKiYoKSctPUB-abc123!?$*&()'-=@~*/

 

2.sha1加密

package main//Go 在多個 crypto/* 包中實現了一系列散列函數。import "crypto/sha1"import "fmt"func main() {    s := "sha1 this string"    //產生一個散列值得方式是 sha1.New(),sha1.Write(bytes),然後 sha1.Sum([]byte{})。這裡我們從一個新的散列開始。    h := sha1.New()    //寫入要處理的位元組。如果是一個字串,需要使用[]byte(s) 來強制轉換成位元組數組。    h.Write([]byte(s))    //這個用來得到最終的散列值的字元切片。Sum 的參數可以用來都現有的字元切片追加額外的位元組切片:一般不需要要。    bs := h.Sum(nil)    //SHA1 值經常以 16 進位輸出,例如在 git commit 中。使用%x 來將散列結果格式化為 16 進位字串。    fmt.Println(s)    fmt.Printf("%x\n", bs)}/*運行程式計算散列值並以可讀 16 進位格式輸出。$ go run sha1-hashes.gosha1 this stringcf23df2207d99a74fbe169e3eba035e633b65d94你可以使用和上面相似的方式來計算其他形式的散列值。例如,計算 MD5 散列,引入 crypto/md5 並使用 md5.New()方法。注意,如果你要求輸入密碼學上的安全散列,你需要小心的研究一下雜湊強度。*/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.