You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.0 KiB

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()
}
}