package secure import ( "bytes" "encoding/base64" "fmt" "github.com/gin-gonic/gin" jsoniter "github.com/json-iterator/go" "github.com/nanjishidu/gomini/gocrypto" "io/ioutil" ) func FakeEcrypt() gin.HandlerFunc { return func(c *gin.Context) { var NP = NetPackage{} var key1 = "0000000000000000" var requestBody, _ = ioutil.ReadAll(c.Request.Body) b1, err := gocrypto.RSAEncrypt([]byte(key1), "credentials/app/server_rsa_public_key.pem") if err != nil { fmt.Println("pem读取错误:", err) return } // 设置Key NP.Key = base64.StdEncoding.EncodeToString([]byte(string(b1))) err = gocrypto.SetAesKey(key1) if err != nil { fmt.Println("SetAesKey:", err) return } // 设置加密body ciphertext, _ := gocrypto.AesECBEncrypt(requestBody) NP.Body = base64.StdEncoding.EncodeToString(ciphertext) NpJson, err := jsoniter.Marshal(NP) if err != nil { fmt.Println("Json err:", err) return } // 转为io.closer b := ioutil.NopCloser(bytes.NewReader(NpJson)) c.Request.Body = b c.Next() } }