Skip to content

Instantly share code, notes, and snippets.

@khajavi
Created November 25, 2016 16:00
Show Gist options
  • Save khajavi/e1677d7a6466e632c8a5299d7cb2536b to your computer and use it in GitHub Desktop.
Save khajavi/e1677d7a6466e632c8a5299d7cb2536b to your computer and use it in GitHub Desktop.
Hash-Key Message Authentication Code (HMAC)
package main
import (
"crypto/hmac"
"crypto/sha512"
"crypto/md5"
"encoding/base64"
"fmt"
"hash"
)
func signString(stringToSign []byte, sharedSecret []byte, method string) []byte {
var h hash.Hash
if(method == "md5") {
h = hmac.New(md5.New, sharedSecret)
} else if (method == "sha512") {
h = hmac.New(sha512.New, sharedSecret)
}
h.Write(stringToSign)
return h.Sum(nil)
}
func main() {
signature := signString([]byte("data"), []byte("secret"), "md5")
fmt.Println(fmt.Sprintf("signature=%s",
base64.URLEncoding.EncodeToString(signature)))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment