mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-13 15:00:24 +08:00
增强加密密钥的稳定性
This commit is contained in:
@@ -19,9 +19,12 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
simpleEncryptMagicKey = rands.HexString(32)
|
defaultNodeEncryptKey = rands.HexString(32)
|
||||||
|
defaultClusterEncryptKey = rands.HexString(32)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var encryptV2Suffix = []byte("$v2")
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if !teaconst.IsMain {
|
if !teaconst.IsMain {
|
||||||
return
|
return
|
||||||
@@ -30,7 +33,8 @@ func init() {
|
|||||||
events.On(events.EventReload, func() {
|
events.On(events.EventReload, func() {
|
||||||
nodeConfig, _ := nodeconfigs.SharedNodeConfig()
|
nodeConfig, _ := nodeconfigs.SharedNodeConfig()
|
||||||
if nodeConfig != nil {
|
if nodeConfig != nil {
|
||||||
simpleEncryptMagicKey = stringutil.Md5(nodeConfig.NodeId + "@" + nodeConfig.Secret)
|
defaultNodeEncryptKey = stringutil.Md5(nodeConfig.NodeId + "@" + nodeConfig.Secret)
|
||||||
|
defaultClusterEncryptKey = stringutil.Md5(defaultClusterEncryptKey)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -38,7 +42,7 @@ func init() {
|
|||||||
// SimpleEncrypt 加密特殊信息
|
// SimpleEncrypt 加密特殊信息
|
||||||
func SimpleEncrypt(data []byte) []byte {
|
func SimpleEncrypt(data []byte) []byte {
|
||||||
var method = &AES256CFBMethod{}
|
var method = &AES256CFBMethod{}
|
||||||
err := method.Init([]byte(simpleEncryptMagicKey), []byte(simpleEncryptMagicKey[:16]))
|
err := method.Init([]byte(defaultClusterEncryptKey), []byte(defaultClusterEncryptKey[:16]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logs.Println("[SimpleEncrypt]" + err.Error())
|
logs.Println("[SimpleEncrypt]" + err.Error())
|
||||||
return data
|
return data
|
||||||
@@ -49,13 +53,24 @@ func SimpleEncrypt(data []byte) []byte {
|
|||||||
logs.Println("[SimpleEncrypt]" + err.Error())
|
logs.Println("[SimpleEncrypt]" + err.Error())
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
dst = append(dst, encryptV2Suffix...)
|
||||||
return dst
|
return dst
|
||||||
}
|
}
|
||||||
|
|
||||||
// SimpleDecrypt 解密特殊信息
|
// SimpleDecrypt 解密特殊信息
|
||||||
func SimpleDecrypt(data []byte) []byte {
|
func SimpleDecrypt(data []byte) []byte {
|
||||||
|
if bytes.HasSuffix(data, encryptV2Suffix) {
|
||||||
|
data = data[:len(data)-len(encryptV2Suffix)]
|
||||||
|
return simpleDecrypt(data, defaultClusterEncryptKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 兼容老的Key
|
||||||
|
return simpleDecrypt(data, defaultNodeEncryptKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
func simpleDecrypt(data []byte, key string) []byte {
|
||||||
var method = &AES256CFBMethod{}
|
var method = &AES256CFBMethod{}
|
||||||
err := method.Init([]byte(simpleEncryptMagicKey), []byte(simpleEncryptMagicKey[:16]))
|
err := method.Init([]byte(key), []byte(key[:16]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logs.Println("[MagicKeyEncode]" + err.Error())
|
logs.Println("[MagicKeyEncode]" + err.Error())
|
||||||
return data
|
return data
|
||||||
|
|||||||
Reference in New Issue
Block a user