77 lines
3.6 KiB
Go
77 lines
3.6 KiB
Go
package cryptoutil
|
|
|
|
import (
|
|
"crypto/md5"
|
|
"encoding/base64"
|
|
"encoding/hex"
|
|
"net/url"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/gogf/gf/v2/container/gvar"
|
|
)
|
|
|
|
func TestDesDecrypt(t *testing.T) {
|
|
decodeString, _ := base64.StdEncoding.DecodeString("64JITpWPkKuGMhi1m7Ikxu1ekL6VQOdjmJvaQPI07MWbLETtJsxzkk2bCUVNaWgUULa3wS9LH+ANO5CUBeOXi02CcS/8lN/tYDFYCyuK7dLN+q0fD0gQlUsuHwy/78EkwZa9VrLh4e519vM9AxR2GnK4WGpumeH7TGJjDkLH0AitKfUYQnil9AKZEVgSSkHkg9ko64qj0QJvzmo76zOkMpIb1+1Pn2cO+5soTSl8BCsP/8hOP5HdOMVBCYH++iSK3O5sYz/cwZq/G8aJrqmEFcDHbgTouXyD5kxa4lb72Vw3Ku+eH+3qDwYMYxWrIcAm")
|
|
decrypt := DesDecrypt(decodeString, Cat)
|
|
str := "{\"lon\":\"113.045246\",\"lat\":\"28.077659\",\"model\":\"847b5b9c-2d97-41ec-8a5d-e9ac79da090d\",\"appVersion\":\"9.7.2\",\"userId\":\"430181200504150038\",\"systemName\":\"android\",\"deviceId\":\"09E46EC9-57C1-4724-BE53-5879CA80A2A0\",\"cpdailyVersion\":\"9.7.2\",\"systemVersion\":\"iOS 17\"}"
|
|
encrypt := DesEncrypt([]byte(str), Cat)
|
|
toString := base64.StdEncoding.EncodeToString(encrypt)
|
|
t.Log(toString)
|
|
t.Log(string(decrypt))
|
|
d2, _ := base64.StdEncoding.DecodeString("86JzX4MBsorI5KasKBHUj6orO1qcPWbo758Ux6G2NUoRuGCoZnE+cJW5slZvsflBrKITPeitF7GTisMNRJxRqlA8cLXAqyo9ZlBPPx0MM3KjILHiA/EvrRrmamo7vi1d/F0ChQc8jLfMgkkcOg4FBmM1H8Yg6KyYdMNN7anIbIdJ+6RPEsakjAIw0r4eawofSh5E0QclDry0v36GK3UA3GDBBfqSub8V5PRL7fQty/R0lx7+mfc2AIXXjUVsv85WQKoyyUwg3siWpQL5S1cbtQNUXClSQP1IAGROnBftvdrib01PR1h7Cp+kvE3HK0+/8l0FoGJ1aijff1t9T9MaVXM/jSUFwkA7tmZIjodrUDhZcCMNm5YLm1ZO4UVBQO118FyOBjSLet0nPc0Wg0/dTO0XZoo9e2bCQwjIQC2G8TdzHDxvDjGEc6hX++nZrN23n19bAgqdvzZt58KftznE9s5t4CEjiHx3ykyidGEGr/VEi/05uOtm8/EsFUVp8+MyVgaTxoaq/4LBu28L59U6+6mZjOFUt49STR5p3UPI3ZJQLe2lmnx9BdqrIHbdXgYNu5oNzrDM8m3z3ns9M2HEGg==")
|
|
d := AesDecryptForCat(d2)
|
|
t.Log(d)
|
|
|
|
form := map[string]*gvar.Var{
|
|
"appVersion": gvar.New("9.7.2"),
|
|
"bodyString": gvar.New("0u7hBd+6O11ZaGsT51FUAVfB72waqtTx5oQQLVEEAuCM29x8lQc41i9/dF6+9wjQNC05jdJTBmHlwFoLD09hfsnQWSyjl/ys124RUQL3r/Um5AwNdKiJE24YQsyQlP3ZamUIFlrNSxmn/DfZ/jR9oZhiVKZSlygA2LNLxtNOyk4rETfqKpZKFOnThbXy5Hf779jUDmPNwn1ZrdWN8UHm6wO+EahrrX60vC02VUHs7r3rMrDWZjBJ57eSgD0QwZabcIb/u9kx1AD8OAxINar3X+N+uAhfrxjHd6v6OVvnc2I9iPLEGNFRKZ94jq64hnATOSH6S/IR/QbDoxebWpGUXm3ALYZeoni09uyhG7IE5NtRw/OmqYtdknrs+c0qyOOBkvxPlqKo+SV4qq7xtrn9RWeZIigiyM8mVtdovN1T/x3DnHxd/AYoSS3/cGkg+2QHzWey/Xf5c4g0EvhaGlE0C7ejKIn5wp0XeHyvAjm4ZVyUhgTN2dZVCQ6ChxXOpLnVDWPNeeZ9vysqVl1ZSkQdCz20gy3p9RfYuArluQqjwIoWQe632Cc/Ep++99V5Tc9iIlLr93PfxFaJJfov3avLKw=="),
|
|
"calVersion": gvar.New("firstv"),
|
|
"deviceId": gvar.New("09E46EC9-57C1-4724-BE53-5879CA80A2A0"),
|
|
"lat": gvar.New("28.077659"),
|
|
"lon": gvar.New("113.045246"),
|
|
"model": gvar.New("847b5b9c-2d97-41ec-8a5d-e9ac79da090d"),
|
|
"systemName": gvar.New("android"),
|
|
"systemVersion": gvar.New("iOS 17"),
|
|
"userId": gvar.New("430181200504150038"),
|
|
"version": gvar.New("first_v4"),
|
|
}
|
|
sign := GetSubmitSign(form)
|
|
t.Log(sign)
|
|
}
|
|
|
|
const submitSignSalt = "hru89rwr87Nthifa" // 请根据实际情况替换为真实盐值
|
|
|
|
func GetSubmitSign(form map[string]*gvar.Var) string {
|
|
// 按照指定顺序构建哈希数据
|
|
keys := []string{
|
|
"appVersion",
|
|
"bodyString",
|
|
"deviceId",
|
|
"lat",
|
|
"lon",
|
|
"model",
|
|
"systemName",
|
|
"systemVersion",
|
|
"userId",
|
|
}
|
|
|
|
var sb strings.Builder
|
|
for _, key := range keys {
|
|
val := ""
|
|
if v, ok := form[key]; ok && v != nil {
|
|
val = v.String()
|
|
}
|
|
// 这里是 key=UrlEncode(key)&,注意是对 key 进行 url encode
|
|
sb.WriteString(key)
|
|
sb.WriteString("=")
|
|
sb.WriteString(url.QueryEscape(val))
|
|
sb.WriteString("&")
|
|
}
|
|
sb.WriteString(submitSignSalt)
|
|
|
|
// 计算MD5
|
|
hash := md5.Sum([]byte(sb.String()))
|
|
return hex.EncodeToString(hash[:])
|
|
}
|