我需要在Go中创建一个Hmac。我在nodejs中创建了一个Hmac,需要在Go中生成相同的Hamc。尝试下面的代码,但得到完全不同的输出。我不知道自己做错了什么。 这就是我试过的
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="dice-roller">
<div class="dice d1"></div>
<div class="dice d2"></div>
</div>
需要等同于以下nodejs代码
link_to 'show on page', Object.const_get(c.commentable_type).find(c.commentable_id)
答案 0 :(得分:12)
您需要在Go程序中使用与Node.js程序(hex)中相同的编码:
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"fmt"
)
func ComputeHmac256(message string, secret string) string {
key := []byte(secret)
h := hmac.New(sha256.New, key)
h.Write([]byte(message))
return hex.EncodeToString(h.Sum(nil))
}
func main() {
fmt.Println(ComputeHmac256("sms1", "b5fb5b3a65b8429693c3a029308e2e46"))
}