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