// Package data_mask ... // // Description : data_mask ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-05-23 14:25 package data_mask import "git.zhangdeman.cn/zhangdeman/data_mask/strategy" var ( maskInstanceTable = make(map[string]IDataMask) defaultDataMask = &DefaultDataMask{} ) func init() { maskInstanceList := []IDataMask{ &strategy.MailDataMask{}, // 邮箱脱敏 &strategy.PhoneDataMask{}, // 手机号脱敏 } for _, item := range maskInstanceList { maskInstanceTable[item.Type()] = item } } // RegisterStrategy 注册数据脱敏策略 // // Author : go_developer@163.com<白茶清欢> // // Date : 22:18 2024/4/7 func RegisterStrategy(dataMaskStrategy ...IDataMask) { for _, item := range dataMaskStrategy { maskInstanceTable[item.Type()] = item } } // Execute 执行数据脱敏 // // Author : go_developer@163.com<白茶清欢> // // Date : 14:31 2023/5/23 func Execute(data string, maskType string) string { dataMaskInstance, exist := maskInstanceTable[maskType] if !exist || nil == dataMaskInstance { dataMaskInstance = defaultDataMask } return dataMaskInstance.Mask(data) }