package main
import (
"fmt"
"sort"
"strings"
"encoding/hex"
"crypto/md5"
)
func main () {
fmt.Println("测试鉴权加密开始......")
params := map[string]interface{}{
"id": "4ea5de1f445e6350ec50414f6b1a5179",
"caller": "yh",
"ts": 1666848176,
}
sign := makeSign(params)
fmt.Println("加密结果:"+ sign)
}
func makeSign(params map[string]interface{}) string {
var AppKey = "pajiwqhivigxorfq98kc6479ehwkqfxq"
var result string
keys := sortMap(params)
for _, key := range keys {
result += key + fmt.Sprintf("%v", params[key])
}
result = AppKey + result + AppKey
fmt.Println("加密明文:" + result)
fmt.Println(result)
m5 := md5.New()
m5.Write([]byte(result))
return strings.ToUpper(hex.EncodeToString(m5.Sum(nil)))
}
func sortMap(v map[string]interface{}) []string {
var keys []string
for k := range v {
keys = append(keys, k)
}
sort.Strings(keys)
fmt.Println("键值排序结果:")
fmt.Println(keys)
return keys
}