After the golang map is sorted, md5 encryption

package main
import (
    "bytes"
    "crypto/md5"
    "encoding/hex"
    "encoding/json"
    "fmt"
    "sort"
    "strings"
)
func main() {
    params := make(map[string]interface{})
    params["name"] = "test"
    params["key"] = "123aa!31."
    params["domain"] = "https://www.baidu.com?name=1&id=1"
    // 排序
    keys := make([]string, len(params))
    i := 0
    for k, _ := range params {
        keys[i] = k
        i++
    }
    sort.Strings(keys)
    fmt.Println("keys:",keys)
    byteBuf := bytes.NewBuffer([]byte{})
    encoder := json.NewEncoder(byteBuf)
    encoder.SetEscapeHTML(false)
    err := encoder.Encode(params)
    if err != nil {
        panic(err)
    }
    data := byteBuf.String()
    h := md5.New()
    h.Write([]byte(strings.TrimRight(data, "\n")))
    fmt.Println(hex.EncodeToString(h.Sum(nil)))
}

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish