Go签名DEMO如下:
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"fmt"
"net/url"
"strings"
)
//使用时把sign方法拷贝到代码工程内即可
func sign(params url.Values, sk string) string {
strEncode := params.Encode()
strEncode = strings.Replace(strEncode, "+", "%20", -1)
h := hmac.New(sha256.New, []byte(sk))
h.Write([]byte(strEncode))
return hex.EncodeToString(h.Sum(nil))
}
func main() {
params := url.Values{}
params.Add("Accesskey", "AKLTXQVF0pOmS6aahIrD5r0B3Q")
params.Add("Service", "iam")
params.Add("Action", "CreateUser")
params.Add("Version", "2015-11-01")
params.Add("Timestamp", "2021-08-12T02:47:36Z") //通过time.Now().UTC().Format("2006-01-02T15:04:05Z")实现
params.Add("SignatureVersion", "1.0")
params.Add("SignatureMethod", "HMAC-SHA256")
params.Add("UserName", "Ttest")
params.Add("RealName", "周四测试")
params.Add("Email", "[email protected]")
params.Add("Remark", "~ce shi*%#|+")
sk := "OMovU5PTLh6y9E9Ioe3K411jt99VqyQSBXgAcDYlo49R3lvUIzb6e/efZCFDmtFlzw=="
signature := sign(params, sk)
fmt.Println(signature) // fc9088ab845949dac4040be9b7ce7859068b5c21d4c400fec8ee0cefb777f659
}
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!