36 lines
757 B
Go
36 lines
757 B
Go
package saft_hat
|
||
|
||
import (
|
||
"crypto/md5"
|
||
"encoding/hex"
|
||
"sort"
|
||
"strings"
|
||
)
|
||
|
||
// 使用参数名的ASCII升序排序后,将参数的值进行拼接并加密生成签名
|
||
func GenerateSignature(params map[string]string) string {
|
||
// 获取所有的键并按照ASCII码排序
|
||
var keys []string
|
||
for k := range params {
|
||
keys = append(keys, k)
|
||
}
|
||
sort.Strings(keys)
|
||
|
||
// 按排序后的键,拼接它们的值
|
||
var values []string
|
||
for _, k := range keys {
|
||
values = append(values, params[k])
|
||
}
|
||
signStr := strings.Join(values, "&")
|
||
|
||
// 将拼接后的字符串转换为小写
|
||
signStr = strings.ToLower(signStr)
|
||
|
||
// 使用MD5加密
|
||
hash := md5.New()
|
||
hash.Write([]byte(signStr))
|
||
md5String := hex.EncodeToString(hash.Sum(nil))
|
||
|
||
return md5String
|
||
}
|