使用 base32 解码传入的密钥;优化调试接口返回内容;新增 RUN_MODE,根据环境变量确定是否要公开调试接口
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"encoding/base32"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
@@ -17,10 +18,16 @@ type SecuredReq struct {
|
||||
Timestamp int64 `json:"timestamp"`
|
||||
}
|
||||
|
||||
func Decrypt[T any](req *SecuredReq, secret string) (resp *T, err error) {
|
||||
func Decrypt[T any](req *SecuredReq, secretStr string) (resp *T, err error) {
|
||||
var encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
|
||||
|
||||
secret, err := encoding.DecodeString(secretStr)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("解码密钥失败: %w", err)
|
||||
}
|
||||
|
||||
// 解密请求
|
||||
block, err := aes.NewCipher([]byte(secret))
|
||||
block, err := aes.NewCipher(secret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -30,7 +37,10 @@ func Decrypt[T any](req *SecuredReq, secret string) (resp *T, err error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var nonce = []byte(req.Nonce)
|
||||
nonce, err := encoding.DecodeString(req.Nonce)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
content, err := base64.StdEncoding.DecodeString(req.Content)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user