diff --git a/internal/services/config_service.go b/internal/services/config_service.go index 8ffe990..5a440ab 100644 --- a/internal/services/config_service.go +++ b/internal/services/config_service.go @@ -6,6 +6,7 @@ import ( "github.com/engigu/baihu-panel/internal/constant" "github.com/engigu/baihu-panel/internal/logger" + "github.com/engigu/baihu-panel/internal/utils" "gopkg.in/ini.v1" ) @@ -150,12 +151,17 @@ func LoadConfig(path string) (*AppConfig, error) { if Config.Server.URLPrefix != "" { logger.Infof("[Config] URL前缀: %s", Config.Server.URLPrefix) } + + maskedHost := utils.MaskString(Config.Database.Host) + maskedDBName := utils.MaskString(Config.Database.DBName) logger.Infof("[Config] 数据库: type=%s, host=%s, port=%d, dbname=%s, dsn=%v", - Config.Database.Type, Config.Database.Host, Config.Database.Port, Config.Database.DBName, Config.Database.DSN != "") + Config.Database.Type, maskedHost, Config.Database.Port, maskedDBName, Config.Database.DSN != "") return Config, nil } + + // applyEnvOverrides 从环境变量加载配置 func applyEnvOverrides() { // Server diff --git a/internal/utils/crypto.go b/internal/utils/crypto.go index 4e1c083..6807ce2 100644 --- a/internal/utils/crypto.go +++ b/internal/utils/crypto.go @@ -112,3 +112,18 @@ func MaskSecrets(text string, secrets []string) string { } return text } + +// MaskString 对字符串进行脱敏处理,保留首尾,中间用星号遮掩 +func MaskString(s string) string { + if s == "" { + return "" + } + n := len(s) + if n <= 3 { + return "***" + } + if n <= 6 { + return s[:1] + "***" + s[n-1:] + } + return s[:2] + "****" + s[n-2:] +}