| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /**
- * @author chengliang
- * @date 2026/1/23 18:38
- * @brief
- *
- **/
- package tool
- import (
- "crypto/md5"
- "encoding/hex"
- "fmt"
- "hash"
- "sort"
- "strings"
- "sync"
- )
- const KEY_SECRET = "secret"
- var md5Pool = sync.Pool{
- New: func() interface{} {
- return md5.New()
- },
- }
- func GenSign(params map[string]any) string {
- var keys []string
- for k := range params {
- keys = append(keys, k)
- }
- sort.Strings(keys)
- fmt.Println("keys:", keys)
- var paramParts []string
- for _, k := range keys {
- paramParts = append(paramParts, fmt.Sprintf("%s=%s", k, params[k]))
- }
- paramStr := strings.Join(paramParts, "&")
- paramStr = fmt.Sprintf("%s&%s", paramStr, KEY_SECRET)
- md5Obj := md5Pool.Get().(hash.Hash)
- defer md5Pool.Put(md5Obj)
- md5Obj.Reset()
- md5Obj.Write([]byte(paramStr))
- md5ObjSum := md5Obj.Sum(nil)
- return hex.EncodeToString(md5ObjSum)
- }
|