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 }