Ver Fonte

响应头desKey

hsun há 1 ano atrás
pai
commit
23e9e425f5
4 ficheiros alterados com 14 adições e 6 exclusões
  1. 3 1
      controllers/base_auth.go
  2. 3 1
      controllers/base_common.go
  3. 4 0
      utils/constants.go
  4. 4 4
      utils/des3.go

+ 3 - 1
controllers/base_auth.go

@@ -72,6 +72,8 @@ func (c *BaseAuthController) ServeJSON(encoding ...bool) {
 
 func (c *BaseAuthController) JSON(data interface{}, hasIndent bool, coding bool) error {
 	c.Ctx.Output.Header("Content-Type", "application/json; charset=utf-8")
+	desEncrypt := utils.DesBase64Encrypt([]byte(utils.DesKey), utils.DesKeySalt)
+	c.Ctx.Output.Header("Dk", string(desEncrypt)) // des3加解密key
 	var content []byte
 	var err error
 	if hasIndent {
@@ -89,7 +91,7 @@ func (c *BaseAuthController) JSON(data interface{}, hasIndent bool, coding bool)
 
 	// 数据加密
 	if services.CheckEncryption() {
-		content = utils.DesBase64Encrypt(content)
+		content = utils.DesBase64Encrypt(content, utils.DesKey)
 		// get请求时,不加双引号就获取不到数据,不知道什么原因,所以还是在前后加上双引号吧
 		content = []byte(`"` + string(content) + `"`)
 	}

+ 3 - 1
controllers/base_common.go

@@ -43,6 +43,8 @@ func (c *BaseCommonController) ServeJSON(encoding ...bool) {
 
 func (c *BaseCommonController) JSON(data interface{}, hasIndent bool, coding bool) error {
 	c.Ctx.Output.Header("Content-Type", "application/json; charset=utf-8")
+	desEncrypt := utils.DesBase64Encrypt([]byte(utils.DesKey), utils.DesKeySalt)
+	c.Ctx.Output.Header("Dk", string(desEncrypt)) // des3加解密key
 	var content []byte
 	var err error
 	if hasIndent {
@@ -69,7 +71,7 @@ func (c *BaseCommonController) JSON(data interface{}, hasIndent bool, coding boo
 
 	// 数据加密
 	if services.CheckEncryption() {
-		content = utils.DesBase64Encrypt(content)
+		content = utils.DesBase64Encrypt(content, utils.DesKey)
 		// get请求时,不加双引号就获取不到数据,不知道什么原因,所以还是在前后加上双引号吧
 		content = []byte(`"` + string(content) + `"`)
 	}

+ 4 - 0
utils/constants.go

@@ -95,3 +95,7 @@ const (
 	BusinessCodeSandbox = "E2023080700" // 试用平台
 	BusinessCodeRelease = "E2023080900" // 生产环境
 )
+
+const (
+	DesKeySalt = "JMCqSoUrTAmyNNIRb0TtlrPk" // DesKey盐值
+)

+ 4 - 4
utils/des3.go

@@ -12,15 +12,15 @@ import (
 )
 
 // des3 + base64 encrypt
-func DesBase64Encrypt(origData []byte) []byte {
-	result, err := TripleDesEncrypt(origData, []byte(DesKey))
+func DesBase64Encrypt(origData []byte, desKey string) []byte {
+	result, err := TripleDesEncrypt(origData, []byte(desKey))
 	if err != nil {
 		panic(err)
 	}
 	return []byte(base64.StdEncoding.EncodeToString(result))
 }
 
-func DesBase64Decrypt(crypted []byte) []byte {
+func DesBase64Decrypt(crypted []byte, desKey string) []byte {
 	result, _ := base64.StdEncoding.DecodeString(string(crypted))
 	remain := len(result) % 8
 	if remain > 0 {
@@ -29,7 +29,7 @@ func DesBase64Decrypt(crypted []byte) []byte {
 			result = append(result, 0)
 		}
 	}
-	origData, err := TripleDesDecrypt(result, []byte(DesKey))
+	origData, err := TripleDesDecrypt(result, []byte(desKey))
 	if err != nil {
 		panic(err)
 	}