From 56bdab032d773996117d6a1f467cdb0e400e92b9 Mon Sep 17 00:00:00 2001 From: karldoenitz Date: Wed, 11 Oct 2023 21:54:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A0=E5=AF=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=9A=84=E9=94=99=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TigoWeb/struct.go | 13 +++++++++++-- TigoWeb/utils.go | 16 +++++++--------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/TigoWeb/struct.go b/TigoWeb/struct.go index fc21254..1f7e50b 100644 --- a/TigoWeb/struct.go +++ b/TigoWeb/struct.go @@ -42,6 +42,7 @@ type Cookie struct { // GetCookieEncodeValue 获取cookie加密值 // - IsSecurity如果设置为false,则返回原始值 // - IsSecurity如果设置为true,则返回加密后的值 +// // 如果加密失败,则抛出异常 func (cookie *Cookie) GetCookieEncodeValue() (result string) { if !cookie.IsSecurity { @@ -49,13 +50,18 @@ func (cookie *Cookie) GetCookieEncodeValue() (result string) { } value := []byte(cookie.Value) key := []byte(cookie.SecurityKey) - result = Encrypt(value, key) + var err error + result, err = Encrypt(value, key) + if err != nil { + logger.Error.Printf("get encode cookie error: %s", err.Error()) + } return result } // GetCookieDecodeValue 获取cookie解密值 // - IsSecurity如果设置为false,则返回原始值 // - IsSecurity如果设置为true,则返回加密后的值 +// // 如果解密失败,则抛出异常 func (cookie *Cookie) GetCookieDecodeValue() (result string) { if !cookie.IsSecurity { @@ -63,7 +69,10 @@ func (cookie *Cookie) GetCookieDecodeValue() (result string) { } value := []byte(cookie.Value) key := []byte(cookie.SecurityKey) - securityValue := Decrypt(value, key) + securityValue, err := Decrypt(value, key) + if err != nil { + logger.Error.Printf("get decode cookie error: %s", err.Error()) + } result = string(securityValue) return result } diff --git a/TigoWeb/utils.go b/TigoWeb/utils.go index 11ee025..3118bdf 100644 --- a/TigoWeb/utils.go +++ b/TigoWeb/utils.go @@ -18,23 +18,21 @@ import ( // Encrypt 方法用来根据key对原始数据进行加密,并将加密结果进行base64编码, // 加密失败则返回空 -// - 此处以后会进行异常处理方面的优化 // - src: 原信息 // - key: 加密密钥 -func Encrypt(src []byte, key []byte) string { - encryptValue, _ := encrypt(src, key) - return base64.StdEncoding.EncodeToString(encryptValue) +func Encrypt(src []byte, key []byte) (string, error) { + encryptValue, err := encrypt(src, key) + return base64.StdEncoding.EncodeToString(encryptValue), err } // Decrypt 方法会先对原始数据进行base64解码,然后根据key进行解密, // 解密失败则返回空 -// - 此处以后会进行异常处理方面的优化 // - src: 加密后的数据 // - key: 加密时使用的密钥 -func Decrypt(src []byte, key []byte) []byte { - result, _ := base64.StdEncoding.DecodeString(string(src)) - value, _ := decrypt(result, key) - return value +func Decrypt(src []byte, key []byte) ([]byte, error) { + result, err := base64.StdEncoding.DecodeString(string(src)) + value, err := decrypt(result, key) + return value, err } // aes加密函数,