参考:https://blog.csdn.net/The_Reader/article/details/84396340
A)将上述参数按照appkey、time、secret secret查询 (opens new window)顺序拼接字符串;
B)将A形成字符串获取SHA256摘要,形成一个64位的十六进制(字母大写)字符串,即为本次请求sign(签名)的值
package main
import (
"fmt"
"time"
"strconv"
"crypto/sha256"
"encoding/hex"
"reflect"
)
func main() {
appkey := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
secret := "bbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Timestamp := time.Now().UnixNano()/ 1e6
fmt.Println("Timestamp 的数据类型是:",reflect.TypeOf(Timestamp))
fmt.Println(Timestamp)
//十进制
Time := strconv.FormatInt(Timestamp,10)
fmt.Println("Time 的数据类型是:",reflect.TypeOf(Time))
Sign := appkey + Time + secret
hash := sha256.New()
hash.Write([]byte(Sign))
sum := hash.Sum(nil)
sign := hex.EncodeToString(sum)
fmt.Println(sign)
fmt.Println(len(sign))
}
输出:
Timestamp 的数据类型是: int64
1616117940859
Time 的数据类型是: string
fb2b0eec0a5f7407859465519c7a990b0e86941feac660c66bfbeb2a523c13ff
64
以及,刚刚用len()数了
是64位