Goにはcrypto/hmac, crypto/sha256などのハッシュ関数用のライブラリが実装 されているため、それを用いる。
sha256.go::
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"fmt"
"os"
)
var key []byte = []byte("example")
func main() {
t := os.Args[1]
m := hmac.New(sha256.New, key)
_, err := m.Write([]byte(t))
if err != nil {
panic("error")
}
d := m.Sum(nil)
h := hex.EncodeToString(d)
fmt.Println(h)
}
実行する。
go run sha256.go 'OK'
de1a3ad9c306022a12d3437cb9f851cd3a9b4779f610c384442b605eeba78f99