Forráskód Böngészése

Merge branch 'bzq/custom_dw_mini_cf' of eta_server/eta_chart_lib into master

鲍自强 8 hónapja
szülő
commit
75ca757381
3 módosított fájl, 49 hozzáadás és 2 törlés
  1. 5 1
      services/dw_mini/base_mini_lib.go
  2. 42 1
      utils/common.go
  3. 2 0
      utils/config.go

+ 5 - 1
services/dw_mini/base_mini_lib.go

@@ -1,6 +1,7 @@
 package dwmini
 
 import (
+	"eta/eta_chart_lib/utils"
 	"fmt"
 	"io"
 	"net/http"
@@ -19,7 +20,10 @@ func HttpPost(url, postData, token string) ([]byte, error) {
 	resp, err := client.Do(req)
 	defer resp.Body.Close()
 	b, err := io.ReadAll(resp.Body)
-	fmt.Println("HttpGet:" + string(b))
+	fmt.Println("HttpPost:" + string(b))
+	str := string(b)
+	str = strings.Trim(str, `"`)
+	b = utils.DesBase64Decrypt([]byte(str), utils.ETA_MINI_DES_KEY)
 	return b, err
 
 }

+ 42 - 1
utils/common.go

@@ -2,13 +2,14 @@ package utils
 
 import (
 	"bufio"
+	"crypto/cipher"
+	"crypto/des"
 	"crypto/md5"
 	"crypto/sha1"
 	"encoding/base64"
 	"encoding/hex"
 	"encoding/json"
 	"fmt"
-	"github.com/shopspring/decimal"
 	"image"
 	"image/png"
 	"io"
@@ -23,6 +24,8 @@ import (
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/shopspring/decimal"
 )
 
 // 随机数种子
@@ -1164,3 +1167,41 @@ func DateConvMysqlConvMongo(dateCon string) string {
 	}
 	return cond
 }
+
+func DesBase64Decrypt(crypted []byte, desKey string) []byte {
+	result, _ := base64.StdEncoding.DecodeString(string(crypted))
+	remain := len(result) % 8
+	if remain > 0 {
+		mod := 8 - remain
+		for i := 0; i < mod; i++ {
+			result = append(result, 0)
+		}
+	}
+	origData, err := TripleDesDecrypt(result, []byte(desKey))
+	if err != nil {
+		panic(any(err))
+	}
+	return origData
+}
+
+// // 3DES解密
+func TripleDesDecrypt(crypted, key []byte) ([]byte, error) {
+	block, err := des.NewTripleDESCipher(key)
+	if err != nil {
+		return nil, err
+	}
+	blockMode := cipher.NewCBCDecrypter(block, key[:8])
+	origData := make([]byte, len(crypted))
+	// origData := crypted
+	blockMode.CryptBlocks(origData, crypted)
+	origData = PKCS5UnPadding(origData)
+	// origData = ZeroUnPadding(origData)
+	return origData, nil
+}
+
+func PKCS5UnPadding(origData []byte) []byte {
+	length := len(origData)
+	// 去掉最后一个字节 unpadding 次
+	unpadding := int(origData[length-1])
+	return origData[:(length - unpadding)]
+}

+ 2 - 0
utils/config.go

@@ -49,6 +49,7 @@ var (
 	APP_EDB_LIB_NAME_EN string
 	EDB_LIB_Md5_KEY     string
 	ETA_MINI_URL        string
+	ETA_MINI_DES_KEY    string
 )
 
 var (
@@ -137,6 +138,7 @@ func init() {
 		APP_EDB_LIB_NAME_EN = config["app_edb_lib_name_en"]
 		EDB_LIB_Md5_KEY = config["edb_lib_md5_key"]
 		ETA_MINI_URL = config["eta_mini_url"]
+		ETA_MINI_DES_KEY = config["eta_mini_des_key"]
 	}
 	//日志配置
 	{