golang實現hmac_sha256加密
阿新 • • 發佈:2019-01-08
hmac是Hash-based Message Authentication Code的簡寫,就是指雜湊訊息認證碼,包含有很多種雜湊加密演算法,sha256是其中一種。
golang程式碼實現入戲:
package main import ( "crypto/hmac" "crypto/sha256" "encoding/base64" "encoding/hex" "fmt" ) const ( message = "hello world!" secret = "0933e54e76b24731a2d84b6b463ec04c" ) func ComputeHmacSha256(message string, secret string) string { key := []byte(secret) h := hmac.New(sha256.New, key) h.Write([]byte(message)) // fmt.Println(h.Sum(nil)) sha := hex.EncodeToString(h.Sum(nil)) // fmt.Println(sha) // hex.EncodeToString(h.Sum(nil)) return base64.StdEncoding.EncodeToString([]byte(sha)) } func main() { fmt.Println(ComputeHmacSha256(message, secret)) }
注意:計算hamc_sha256時,是否需要轉成十六進位制,取決於自己的需要,本文程式碼中註釋掉該行程式碼:
hex.EncodeToString(h.Sum(nil))