我正在尝试生成一个用于图像代理的hmac密钥。我有:
https://play.golang.org/p/fec_N2Nim4
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
"fmt"
)
func main() {
mac := hmac.New(sha256.New, []byte("secret key"))
mac.Write([]byte("https://octodex.github.com/images/codercat.jpg"))
want := mac.Sum(nil)
fmt.Println("result: ",base64.URLEncoding.EncodeToString(want)) // expect "sXyMwWKIC5JPCtlYOQ2f4yMBTqpjtUsfI67Sp7huXIYY="
}
这是基于the package's推荐的公式,用于生成密钥以及我尝试过的其他方法,这些方法都产生相同的密钥。但是,示例中给出的url在前面有一个“s”:
vs我得到的:
http://localhost:8080/500,XyMwWKIC5JPCtlYOQ2f4yMBTqpjtUsfI67Sp7huXIYY=/https://octodex.github.com/images/codercat.jpg