Go 验签算法
package main
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"reflect"
"sort"
"strconv"
"strings"
)
func main() {
strMap := `{"z_id":"1","s_id":"1","r_list":["123"],"type":0,"att":[],"time":"1624240969","sign":"0cc57fb623715fa97e264ef61c7d20ce"}`
byteJson := []byte(strMap)
var formatMap interface{
}
err := json.Unmarshal(byteJson, &formatMap)
if err != nil {
fmt.Println(err)
}
pm := formatMap.(map[string]interface{
})
secretKey := "1234556788" //秘钥
sign, signFlag := getSign(pm, secretKey)
if signFlag {
fmt.Println("验签成功", sign)
} else {
fmt.Println("验签失败", sign)
}
}
//类型判断
func typeof(v interface{
}) string {
return refle