範例 Go:SHA256 哈希

SHA256 哈希 通常用於計算二進位或文字區塊的簡短識別資料。例如,TLS/SSL 憑證使用 SHA256 來計算憑證的簽章。以下說明如何在 Go 中計算 SHA256 哈希。

package main

Go 在不同的 crypto/* 套件中實作了數個雜湊函數。

import (
    "crypto/sha256"
    "fmt"
)
func main() {
    s := "sha256 this string"

這裡我們從一個新的雜湊開始。

    h := sha256.New()

Write 預期有位元組。如果您有字串 s,請使用 []byte(s) 將它強制轉換成位元組。

    h.Write([]byte(s))

這取得最後的雜湊結果,作為位元組切片。Sum 的引數可附加至現有的位元組切片:通常不必要。

    bs := h.Sum(nil)
    fmt.Println(s)
    fmt.Printf("%x\n", bs)
}

執行程式會計算雜湊並使用人類可讀的十六進位格式印出。

$ go run sha256-hashes.go
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...

您可以使用類似的範本計算其他雜湊,如上方所示。例如,要計算 SHA512 雜湊,請匯入 crypto/sha512 並使用 sha512.New()

請注意,如果您需要加密安全雜湊,您應該仔細研究雜湊強度

下一個範例:Base64 編碼.