Documentation
¶
Index ¶
- Constants
- Variables
- func APIKeyDesensitize(key string) string
- func AccessTokenDesensitize(token string) string
- func AddressDesensitize(address string) string
- func AesDesensitize(data, key []byte) (string, error)
- func BankCardDesensitize(card string) string
- func Base64Desensitize(data string) string
- func BiographyDesensitize(bio string) string
- func CertificateDesensitize(cert string) string
- func ChineseIDCardDesensitize(id string) bool
- func ChineseNameDesensitize(name string) string
- func ClearToEmptyDesensitize(_ string) string
- func ClearToNullDesensitize(_ string) string
- func CommentDesensitize(comment string) string
- func CompanyIDDesensitize(id string) string
- func CoordinateDesensitize(coord string) string
- func CreditCardDesensitize(card string) string
- func CustomizeKeepLengthDesensitize(data string, preKeep, postKeep int) string
- func DesDesensitize(data string, key []byte) (string, error)
- func DeviceIDDesensitize(id string) string
- func DomainDesensitize(domain string) string
- func DriversLicenseDesensitize(license string) string
- func EmailDesensitize(email string) string
- func FirstMaskDesensitize(data string) string
- func FixedPhoneDesensitize(phone string) string
- func IDCardDesensitize(idCard string) string
- func IMEIDesensitize(imei string) string
- func IPv4Desensitize(ip string) string
- func IPv6Desensitize(ip string) string
- func JWTDesensitize(token string) string
- func LatLngDesensitize(latLng string) string
- func LicensePlateDesensitize(license string) string
- func MACDesensitize(mac string) string
- func MD5Desensitize(input string) string
- func MaskString(str string, start, end int, maskChar string) string
- func MedicalIDDesensitize(id string) string
- func MobilePhoneDesensitize(phone string) string
- func NicknameDesensitize(nickname string) string
- func PassportDesensitize(passport string) string
- func PasswordDesensitize(password string) string
- func PostalCodeDesensitize(code string) string
- func PrivateKeyDesensitize(_ string) string
- func ProcessSensitiveData(v interface{}) error
- func PublicKeyDesensitize(key string) string
- func RefreshTokenDesensitize(token string) string
- func RegisterURLSensitiveParams(params ...string)
- func RsaDesensitize(data []byte, publicKey *rsa.PublicKey) (string, error)
- func SHA1Desensitize(input string) string
- func SHA256Desensitize(input string) string
- func SetGlobalLogger(logger Logger)
- func SignatureDesensitize(signature string) string
- func SocialSecurityDesensitize(ssn string) string
- func StringDesensitize(data string, filterWords ...string) string
- func URLDesensitize(rawURL string) string
- func UUIDDesensitize(uuid string) string
- func UsernameDesensitize(username string) string
- func VINDesensitize(vin string) string
- type AdvancedDesensitizer
- type BaseDesensitizer
- func (bd *BaseDesensitizer) CacheEnabled() bool
- func (bd *BaseDesensitizer) ClearCache()
- func (bd *BaseDesensitizer) Configure(config map[string]interface{}) error
- func (bd *BaseDesensitizer) Disable()
- func (bd *BaseDesensitizer) Enable()
- func (bd *BaseDesensitizer) Enabled() bool
- func (bd *BaseDesensitizer) GetCacheStats() CacheStats
- func (bd *BaseDesensitizer) GetConfig(key string) (interface{}, bool)
- func (bd *BaseDesensitizer) Name() string
- func (bd *BaseDesensitizer) SetCacheEnabled(enabled bool)
- func (bd *BaseDesensitizer) SetLogger(logger Logger)
- type CacheStats
- type CacheableDesensitizer
- type ChineseNameDesensitizer
- func (cnd *ChineseNameDesensitizer) Desensitize(data string) (string, error)
- func (cnd *ChineseNameDesensitizer) GetSupportedTypes() []string
- func (cnd *ChineseNameDesensitizer) GetTypePattern(dataType string) string
- func (cnd *ChineseNameDesensitizer) Supports(dataType string) bool
- func (cnd *ChineseNameDesensitizer) ValidateType(data string, dataType string) bool
- type ConfigValidator
- type CustomFunctionDesensitizer
- func (cfd *CustomFunctionDesensitizer) AddFunction(dataType string, fn func(string) string)
- func (cfd *CustomFunctionDesensitizer) Desensitize(data string) (string, error)
- func (cfd *CustomFunctionDesensitizer) GetSupportedTypes() []string
- func (cfd *CustomFunctionDesensitizer) Supports(dataType string) bool
- type DefaultDesensitizerManager
- func (dm *DefaultDesensitizerManager) AutoDetectAndProcess(data string) (*DesensitizationResult, error)
- func (dm *DefaultDesensitizerManager) ClearAllCaches()
- func (dm *DefaultDesensitizerManager) CurrentVersion() int64
- func (dm *DefaultDesensitizerManager) Disable()
- func (dm *DefaultDesensitizerManager) DisableAll()
- func (dm *DefaultDesensitizerManager) Enable()
- func (dm *DefaultDesensitizerManager) EnableAll()
- func (dm *DefaultDesensitizerManager) GetDesensitizer(name string) (Desensitizer, bool)
- func (dm *DefaultDesensitizerManager) GetDesensitizersForType(dataType string) []Desensitizer
- func (dm *DefaultDesensitizerManager) GetDetailedStats() map[string]interface{}
- func (dm *DefaultDesensitizerManager) GetStats() ManagerStats
- func (dm *DefaultDesensitizerManager) GetTypeMapping() map[string][]string
- func (dm *DefaultDesensitizerManager) IsEnabled() bool
- func (dm *DefaultDesensitizerManager) ListDesensitizers() []string
- func (dm *DefaultDesensitizerManager) ProcessWithDesensitizer(name string, data string) (*DesensitizationResult, error)
- func (dm *DefaultDesensitizerManager) ProcessWithType(dataType string, data string) (*DesensitizationResult, error)
- func (dm *DefaultDesensitizerManager) RegisterDesensitizer(desensitizer Desensitizer) error
- func (dm *DefaultDesensitizerManager) UnregisterDesensitizer(name string) error
- func (dm *DefaultDesensitizerManager) UpsertDesensitizer(desensitizer Desensitizer) (int64, error)
- type DesensitizationContext
- type DesensitizationResult
- type DesensitizeFunc
- type Desensitizer
- type DesensitizerFactory
- type DesensitizerManager
- type DlpConfig
- type DlpEngine
- func (e *DlpEngine) BatchDesensitizeStruct(data interface{}) error
- func (e *DlpEngine) ClearCache()
- func (e *DlpEngine) ClearDesensitizerCaches()
- func (e *DlpEngine) DesensitizeSpecificType(text string, sensitiveType string) string
- func (e *DlpEngine) DesensitizeStruct(data interface{}) error
- func (e *DlpEngine) DesensitizeStructAdvanced(data interface{}) error
- func (e *DlpEngine) DesensitizeText(text string) string
- func (e *DlpEngine) DetectSensitiveInfo(text string) map[string][]MatchResult
- func (e *DlpEngine) Disable()
- func (e *DlpEngine) DisableDesensitizer(name string) error
- func (e *DlpEngine) DisablePluginArchitecture()
- func (e *DlpEngine) Enable()
- func (e *DlpEngine) EnableDesensitizer(name string) error
- func (e *DlpEngine) EnablePluginArchitecture()
- func (e *DlpEngine) GetCacheStats() (hits, misses int64)
- func (e *DlpEngine) GetDesensitizerManager() *SecurityEnhancedManager
- func (e *DlpEngine) GetDesensitizerStats() ManagerStats
- func (e *DlpEngine) GetSupportedTypes() []string
- func (e *DlpEngine) GetSupportedTypesWithPlugin() map[string][]string
- func (e *DlpEngine) IsEnabled() bool
- func (e *DlpEngine) IsPluginArchitectureEnabled() bool
- func (e *DlpEngine) ListRegisteredDesensitizers() []string
- func (e *DlpEngine) RegisterCustomDesensitizer(desensitizer Desensitizer) error
- func (e *DlpEngine) RegisterCustomMatcher(matcher *Matcher) error
- func (e *DlpEngine) UnregisterDesensitizer(name string) error
- func (e *DlpEngine) Version() int64
- type DlpTagConfig
- type EnhancedBankCardDesensitizer
- func (ebcd *EnhancedBankCardDesensitizer) Desensitize(data string) (string, error)
- func (ebcd *EnhancedBankCardDesensitizer) GetSupportedTypes() []string
- func (ebcd *EnhancedBankCardDesensitizer) GetTypePattern(dataType string) string
- func (ebcd *EnhancedBankCardDesensitizer) Supports(dataType string) bool
- func (ebcd *EnhancedBankCardDesensitizer) ValidateType(data string, dataType string) bool
- type EnhancedEmailDesensitizer
- func (eed *EnhancedEmailDesensitizer) Desensitize(data string) (string, error)
- func (eed *EnhancedEmailDesensitizer) GetSupportedTypes() []string
- func (eed *EnhancedEmailDesensitizer) GetTypePattern(dataType string) string
- func (eed *EnhancedEmailDesensitizer) Supports(dataType string) bool
- func (eed *EnhancedEmailDesensitizer) ValidateType(data string, dataType string) bool
- type EnhancedIDCardDesensitizer
- func (eicd *EnhancedIDCardDesensitizer) Desensitize(data string) (string, error)
- func (eicd *EnhancedIDCardDesensitizer) GetConfig(key string) (interface{}, bool)
- func (eicd *EnhancedIDCardDesensitizer) GetSupportedTypes() []string
- func (eicd *EnhancedIDCardDesensitizer) GetTypePattern(dataType string) string
- func (eicd *EnhancedIDCardDesensitizer) Supports(dataType string) bool
- func (eicd *EnhancedIDCardDesensitizer) ValidateType(data string, dataType string) bool
- type EnhancedPhoneDesensitizer
- func (epd *EnhancedPhoneDesensitizer) Desensitize(data string) (string, error)
- func (epd *EnhancedPhoneDesensitizer) GetSupportedTypes() []string
- func (epd *EnhancedPhoneDesensitizer) GetTypePattern(dataType string) string
- func (epd *EnhancedPhoneDesensitizer) Supports(dataType string) bool
- func (epd *EnhancedPhoneDesensitizer) ValidateType(data string, dataType string) bool
- type FieldConfig
- type Logger
- type ManagerStats
- type MatchResult
- type Matcher
- type PerformanceMetrics
- type PersonalInfoDesensitizer
- type RateLimiter
- type RegexDesensitizer
- func (rd *RegexDesensitizer) AddPattern(dataType, pattern, replacement string) error
- func (rd *RegexDesensitizer) BatchDesensitize(data []string) ([]string, error)
- func (rd *RegexDesensitizer) Desensitize(data string) (string, error)
- func (rd *RegexDesensitizer) DesensitizeWithContext(ctx context.Context, data string) (string, error)
- func (rd *RegexDesensitizer) GetSupportedTypes() []string
- func (rd *RegexDesensitizer) GetTypePattern(dataType string) string
- func (rd *RegexDesensitizer) Supports(dataType string) bool
- func (rd *RegexDesensitizer) ValidateType(data string, dataType string) bool
- type RegexSearcher
- func (s *RegexSearcher) AddMatcher(matcher *Matcher) error
- func (s *RegexSearcher) DetectAllTypes(text string) map[string][]MatchResult
- func (s *RegexSearcher) GetAllSupportedTypes() []string
- func (s *RegexSearcher) GetMatcher(name string) *Matcher
- func (s *RegexSearcher) Match(text string) []MatchResult
- func (s *RegexSearcher) RemoveMatcher(name string)
- func (s *RegexSearcher) ReplaceAllTypes(text string) string
- func (s *RegexSearcher) ReplaceParallel(text string, matchType string) string
- func (s *RegexSearcher) SearchSensitiveByType(text string, typeName string) []MatchResult
- func (s *RegexSearcher) UpdateMatcher(name string, pattern string, validator func(string) bool, ...) error
- type RequestInfo
- type SecurityEnhancedManager
- type SecurityEvent
- type Sensitive
- type StructDesensitizer
- type StructFieldProcessor
- type TypeSpecificDesensitizer
- type ValidationResult
Constants ¶
const ( ChineseName = "chinese_name" // 中文姓名 IDCard = "id_card" // 中国居民身份证号码 Passport = "passport" // 护照号码 SocialSecurity = "social_security" // 社会保障号码 DriversLicense = "license_number" // 驾驶证号码 MobilePhone = "mobile_phone" // 手机号码 FixedPhone = "landline" // 固定电话号码 Email = "email" // 电子邮箱地址 Address = "address" // 详细地址信息 PostalCode = "postal_code" // 邮政编码 BankCard = "bank_card" // 银行卡号 CreditCard = "credit_card" // 信用卡号 IPv4 = "ipv4" // IPv4地址 IPv6 = "ipv6" // IPv6地址 MAC = "mac" // MAC物理地址 IMEI = "imei" // 手机设备识别码 LicensePlate = "plate" // 车牌号码 VIN = "vin" // 车辆识别代号 APIKey = "api_key" // API访问密钥 JWT = "jwt" // JSON Web Token AccessToken = "access_token" // 访问令牌 DeviceID = "device_id" // 设备唯一标识 UUID = "uuid" // 通用唯一识别码 MD5 = "md5" // MD5哈希值 SHA1 = "sha1" // SHA1哈希值 SHA256 = "sha256" // SHA256哈希值 LatLng = "lat_lng" // 地理坐标(经纬度) URL = "url" // 统一资源定位符 Domain = "domain" // 域名 Password = "password" // 密码 Username = "username" // 用户名 MedicalID = "medical_id" // 医疗保险号 CompanyID = "company_id" // 统一社会信用代码 IBAN = "iban" // 国际银行账号 Swift = "swift" // SWIFT银行代码 GitRepo = "git_repo" // Git代码仓库地址 )
const ( // 个人身份信息 // 百家姓列表(按拼音排序) ChineseSurnames = "(?:" + "艾|安|敖|巴|白|班|包|暴|鲍|贝|贲|毕|边|卞|别|邴|伯|薄|卜|蔡|曹|岑|柴|昌|常|晁|车|陈|成|程|池|充|仇|储|楚|褚|淳|从|崔|戴|党|邓|狄|刁|丁|董|窦|杜|端|段|鄂|樊|范|方|房|费|丰|封|冯|凤|伏|扶|符|福|傅|甘|高|郜|戈|盖|葛|耿|龚|宫|勾|苟|辜|古|谷|顾|关|管|桂|郭|国|韩|杭|郝|何|和|贺|赫|衡|洪|侯|胡|扈|花|华|滑|怀|宦|黄|惠|霍|姬|嵇|吉|汲|籍|计|纪|季|贾|简|姜|江|蒋|焦|金|靳|荆|井|景|居|鞠|阚|康|柯|空|孔|寇|蒯|匡|邝|况|赖|蓝|郎|劳|雷|冷|黎|李|利|连|廉|练|梁|廖|林|蔺|凌|令|刘|柳|龙|隆|娄|卢|鲁|陆|路|逯|禄|吕|栾|罗|骆|麻|马|满|毛|茅|梅|蒙|孟|米|宓|闵|明|莫|牟|穆|倪|聂|年|宁|牛|钮|农|潘|庞|裴|彭|皮|平|蒲|濮|浦|戚|祁|齐|钱|强|乔|谯|秦|邱|裘|曲|屈|瞿|全|阙|冉|饶|任|荣|容|阮|芮|桑|沙|山|单|商|上|邵|佘|申|沈|盛|师|施|时|石|史|寿|殳|舒|束|双|水|司|松|宋|苏|宿|孙|索|邰|太|谈|谭|汤|唐|陶|滕|田|通|童|涂|屠|万|汪|王|危|韦|卫|魏|温|文|闻|翁|巫|邬|伍|武|吴|务|西|席|夏|咸|向|项|萧|谢|辛|邢|幸|熊|徐|许|轩|宣|薛|荀|闫|严|言|阎|颜|晏|燕|杨|姚|叶|伊|易|殷|尹|应|庸|雍|尤|游|于|余|虞|元|袁|岳|云|臧|曾|翟|詹|湛|张|章|赵|甄|郑|支|钟|仲|周|朱|诸|祝|庄|卓|子|宗|邹|祖|左" + ")" ChineseNamePattern = "(?:" + ChineseSurnames + ")[\u4e00-\u9fa5]{1,5}" // 中文姓名:百家姓+名字 ChineseIDCardPattern = "[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]" // 身份证 PassportPattern = "[a-zA-Z][0-9]{9}" // 护照号 // 社会保障号:18位身份证格式,避免误匹配19位银行卡 SocialSecurityPattern = "[1-9]\\d{5}(?:18|19|20)\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]" // 社会保障号(18位身份证格式) DriversLicensePattern = "[1-9]\\d{5}[a-zA-Z]\\d{6}" // 驾驶证号 // 联系方式 MobilePhonePattern = "(?:(?:\\+|00)86)?1(?:(?:3[\\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\\d])|(?:9[189]))\\d{8}" // 手机号 // 固定电话:更严格的格式,避免误匹配银行卡号 FixedPhonePattern = "(?:(?:0\\d{2,3}[-]?)?[1-9]\\d{6,7})|(?:\\d{3,4}[-]\\d{7,8}(?:[-]\\d{1,4})?)" // 固定电话(更严格格式) EmailPattern = `[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}` // 电子邮箱 // 地址信息 AddressPattern = "" // 详细地址 /* 142-byte string literal not displayed */ // 邮政编码:更严格的格式,避免误匹配银行卡号尾数 PostalCodePattern = `(?:^|[^\d])[1-9]\d{5}(?:[^\d]|$)` // 邮政编码(独立的6位数字) // 金融信息 // 中国银行卡:19位,以特定BIN码开头(更精确的匹配) BankCardPattern = `(?:(?:6(?:2[2-9]\d|3\d{2}|4\d{2}|5\d{2}|6\d{2}|7\d{2}|8\d{2}|9\d{2})\d{13,16})|(?:62\d{16,17}))` // 中国银行卡(19位,以62-69开头) // 国际信用卡:16位,标准国际格式 CreditCardPattern = `` // 国际信用卡(主要16位) /* 147-byte string literal not displayed */ // 网络标识 IPv4Pattern = `(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)` // IPv4 IPv6Pattern = "" /* 661-byte string literal not displayed */ MACPattern = `(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}` // MAC地址 IMEIPattern = `\d{15,17}` // IMEI号 // 车辆信息 LicensePlatePattern = `` // 车牌号 /* 154-byte string literal not displayed */ VINPattern = `[A-HJ-NPR-Z0-9]{17}` // 车架号 // 密钥和令牌 APIKeyPattern = `[a-zA-Z0-9]{32,}` // API密钥 JWTPattern = `eyJ[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*` // JWT令牌 AccessTokenPattern = `[a-zA-Z0-9]{40,}` // 访问令牌 // 设备标识 DeviceIDPattern = `[A-F0-9]{8}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{12}` // 设备ID UUIDPattern = `[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}` // UUID // 加密哈希 MD5Pattern = `[a-fA-F0-9]{32}` // MD5哈希 SHA1Pattern = `[a-fA-F0-9]{40}` // SHA1哈希 SHA256Pattern = `[a-fA-F0-9]{64}` // SHA256哈希 // 其他标识 LatLngPattern = `[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)` // 经纬度 // URL和域名 URLPattern = `` /* 292-byte string literal not displayed */ DomainPattern = `(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]` // 域名 // 敏感内容 PasswordPattern = `^[a-zA-Z]\w{5,17}$` // 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线) // PasswordPattern,增加特殊字符要求 // PasswordPattern = `^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$` UsernamePattern = `[a-zA-Z0-9_]{3,16}` // 用户名 // 医保卡号:更严格的格式,避免误匹配银行卡号 MedicalIDPattern = `[1-5]\\d{7}` // 医保卡号(8位,1-5开头) CompanyIDPattern = `[0-9A-Z]{15}` // 公司编号 // 金融相关 IBANPattern = `[A-Z]{2}\d{2}[A-Z0-9]{4}\d{7}([A-Z\d]?){0,16}` // IBAN号码 SwiftPattern = `[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?` // SWIFT代码 // 代码相关 GitRepoPattern = `(?:git|ssh|git@[\w\.]+)(?::(\/\/)?)([\w\.@\:/\-~]+)(\.git)(\/)?` // Git仓库 )
Variables ¶
var ( ErrInvalidMatcher = errors.New("invalid matcher configuration") ErrNotStruct = errors.New("input must be a struct") )
var ( ChineseNameRegex *regexp.Regexp ChineseIDCardRegex *regexp.Regexp PassportRegex *regexp.Regexp SocialSecurityRegex *regexp.Regexp DriversLicenseRegex *regexp.Regexp MobilePhoneRegex *regexp.Regexp FixedPhoneRegex *regexp.Regexp EmailRegex *regexp.Regexp AddressRegex *regexp.Regexp PostalCodeRegex *regexp.Regexp BankCardRegex *regexp.Regexp CreditCardRegex *regexp.Regexp IPv4Regex *regexp.Regexp IPv6Regex *regexp.Regexp MACRegex *regexp.Regexp IMEIRegex *regexp.Regexp LicensePlateRegex *regexp.Regexp VINRegex *regexp.Regexp APIKeyRegex *regexp.Regexp JWTRegex *regexp.Regexp AccessTokenRegex *regexp.Regexp DeviceIDRegex *regexp.Regexp UUIDRegex *regexp.Regexp MD5Regex *regexp.Regexp SHA1Regex *regexp.Regexp SHA256Regex *regexp.Regexp LatLngRegex *regexp.Regexp URLRegex *regexp.Regexp DomainRegex *regexp.Regexp PasswordRegex *regexp.Regexp UsernameRegex *regexp.Regexp MedicalIDRegex *regexp.Regexp CompanyIDRegex *regexp.Regexp IBANRegex *regexp.Regexp SwiftRegex *regexp.Regexp GitRepoRegex *regexp.Regexp )
var ( ErrUnsupportedType = errors.New("unsupported field type for desensitization") ErrInvalidTag = errors.New("invalid dlp tag configuration") )
Functions ¶
func APIKeyDesensitize ¶ added in v0.0.18
APIKeyDesensitize 处理API密钥,隐藏前面部分
func AccessTokenDesensitize ¶ added in v0.0.18
AccessTokenDesensitize 访问令牌脱敏
func AddressDesensitize ¶ added in v0.0.18
AddressDesensitize 地址脱敏
func AesDesensitize ¶ added in v0.0.18
AesDesensitize AES加密脱敏方法
func BankCardDesensitize ¶ added in v0.0.18
BankCardDesensitize 银行卡脱敏,保留前6位和后4位,中间用*代替
func Base64Desensitize ¶ added in v0.0.18
Base64Desensitize Base64编码脱敏方法
func BiographyDesensitize ¶ added in v0.0.18
BiographyDesensitize 个人简介脱敏
func CertificateDesensitize ¶ added in v0.0.18
CertificateDesensitize 证书脱敏
func ChineseIDCardDesensitize ¶ added in v0.0.18
ChineseIDCardDesensitize 验证中国身份证号
func ChineseNameDesensitize ¶ added in v0.0.18
ChineseNameDesensitize 中文姓名脱敏
func ClearToEmptyDesensitize ¶ added in v0.0.18
ClearToEmptyDesensitize 清空为空字符串的脱敏实现
func ClearToNullDesensitize ¶ added in v0.0.18
ClearToNullDesensitize 清空为null的脱敏实现
func CommentDesensitize ¶ added in v0.0.18
CommentDesensitize 评论内容脱敏
func CompanyIDDesensitize ¶ added in v0.0.18
CompanyIDDesensitize 公司编号(统一信用代码)脱敏
func CoordinateDesensitize ¶ added in v0.0.18
CoordinateDesensitize 地理坐标脱敏
func CreditCardDesensitize ¶ added in v0.0.18
CreditCardDesensitize 处理信用卡号,保留前6位和后4位,中间用*代替
func CustomizeKeepLengthDesensitize ¶ added in v0.0.18
CustomizeKeepLengthDesensitize 自定义保留长度的脱敏
func DesDesensitize ¶ added in v0.0.18
DesDesensitize DES加密脱敏方法
func DeviceIDDesensitize ¶ added in v0.0.18
DeviceIDDesensitize 设备ID脱敏
func DomainDesensitize ¶ added in v0.0.18
DomainDesensitize 处理域名,隐藏前面部分
func DriversLicenseDesensitize ¶ added in v0.0.18
DriversLicenseDesensitize 驾驶证号脱敏
func EmailDesensitize ¶ added in v0.0.18
EmailDesensitize 邮箱脱敏,隐藏用户名中间3位,域名不打码
func FirstMaskDesensitize ¶ added in v0.0.18
FirstMaskDesensitize 仅保留首字符脱敏
func FixedPhoneDesensitize ¶ added in v0.0.18
FixedPhoneDesensitize 固定电话脱敏
func IDCardDesensitize ¶ added in v0.1.0
IDCardDesensitize 身份证脱敏 身份证号结构:前6位地区码 + 8位出生日期(YYYYMMDD) + 3位顺序码 + 1位校验码 脱敏策略:保留前6位(地区码)和后4位(后3位顺序码+校验码),中间的出生日期全部脱敏
func IMEIDesensitize ¶ added in v0.0.18
IMEIDesensitize IMEI号脱敏
func IPv4Desensitize ¶ added in v0.0.18
IPv4Desensitize IPv4地址脱敏
func IPv6Desensitize ¶ added in v0.0.18
IPv6Desensitize IPv6地址脱敏
func JWTDesensitize ¶ added in v0.0.18
JWTDesensitize JWT令牌脱敏
func LatLngDesensitize ¶ added in v0.0.18
LatLngDesensitize 处理经纬度,隐藏具体数值
func LicensePlateDesensitize ¶ added in v0.0.21
LicensePlateDesensitize 车牌号脱敏
func MACDesensitize ¶ added in v0.0.18
MACDesensitize MAC地址脱敏
func MD5Desensitize ¶ added in v0.0.18
MD5Desensitize 计算输入的MD5哈希值并返回
func MaskString ¶ added in v0.0.18
MaskString 字符串遮罩处理
func MedicalIDDesensitize ¶ added in v0.0.18
MedicalIDDesensitize 医保卡号脱敏
func MobilePhoneDesensitize ¶ added in v0.0.18
MobilePhoneDesensitize 手机号脱敏
func NicknameDesensitize ¶ added in v0.0.18
NicknameDesensitize 昵称脱敏
func PassportDesensitize ¶ added in v0.0.18
PassportDesensitize 护照号脱敏
func PasswordDesensitize ¶ added in v0.0.18
PasswordDesensitize 密码脱敏
func PostalCodeDesensitize ¶ added in v0.0.18
PostalCodeDesensitize 处理邮政编码,隐藏中间三位
func PrivateKeyDesensitize ¶ added in v0.0.18
PrivateKeyDesensitize 私钥脱敏
func ProcessSensitiveData ¶ added in v0.0.18
func ProcessSensitiveData(v interface{}) error
ProcessSensitiveData 处理结构体的脱敏
func PublicKeyDesensitize ¶ added in v0.0.18
PublicKeyDesensitize 公钥脱敏
func RefreshTokenDesensitize ¶ added in v0.0.18
RefreshTokenDesensitize 刷新令牌脱敏
func RegisterURLSensitiveParams ¶ added in v0.0.18
func RegisterURLSensitiveParams(params ...string)
RegisterURLSensitiveParams 添加自定义的URL参数脱敏规则
func RsaDesensitize ¶ added in v0.0.18
RsaDesensitize RSA加密脱敏方法
func SHA1Desensitize ¶ added in v0.0.18
SHA1Desensitize 计算输入的SHA1哈希值并返回
func SHA256Desensitize ¶ added in v0.0.18
SHA256Desensitize 处理输入,返回 SHA-256 哈希值
func SetGlobalLogger ¶ added in v0.1.0
func SetGlobalLogger(logger Logger)
SetGlobalLogger 设置全局管理器的日志记录器
func SignatureDesensitize ¶ added in v0.0.18
SignatureDesensitize 个性签名脱敏
func SocialSecurityDesensitize ¶ added in v0.0.18
SocialSecurityDesensitize 社会保障号脱敏
func StringDesensitize ¶ added in v0.0.18
StringDesensitize 字符串脱敏
func URLDesensitize ¶ added in v0.0.18
URLDesensitize URL脱敏实现 - 全面考虑各种敏感组合
func UUIDDesensitize ¶ added in v0.0.18
UUIDDesensitize 处理UUID,隐藏中间部分
func UsernameDesensitize ¶ added in v0.0.18
UsernameDesensitize 用户名脱敏,显示前后两位
Types ¶
type AdvancedDesensitizer ¶ added in v0.1.0
type AdvancedDesensitizer interface {
Desensitizer
// DesensitizeStruct 脱敏结构体
DesensitizeStruct(data interface{}) error
// DesensitizeWithContext 带上下文的脱敏
DesensitizeWithContext(ctx context.Context, data string) (string, error)
// BatchDesensitize 批量脱敏
BatchDesensitize(data []string) ([]string, error)
}
AdvancedDesensitizer 高级脱敏器接口 支持更复杂的脱敏操作
type BaseDesensitizer ¶ added in v0.1.0
type BaseDesensitizer struct {
// contains filtered or unexported fields
}
BaseDesensitizer 基础脱敏器实现 提供通用的脱敏器功能,其他脱敏器可以继承此实现
func NewBaseDesensitizer ¶ added in v0.1.0
func NewBaseDesensitizer(name string) *BaseDesensitizer
NewBaseDesensitizer 创建基础脱敏器
func (*BaseDesensitizer) CacheEnabled ¶ added in v0.1.0
func (bd *BaseDesensitizer) CacheEnabled() bool
CacheEnabled 检查是否启用缓存
func (*BaseDesensitizer) ClearCache ¶ added in v0.1.0
func (bd *BaseDesensitizer) ClearCache()
ClearCache 清空缓存
func (*BaseDesensitizer) Configure ¶ added in v0.1.0
func (bd *BaseDesensitizer) Configure(config map[string]interface{}) error
Configure 配置脱敏器参数
func (*BaseDesensitizer) Disable ¶ added in v0.1.0
func (bd *BaseDesensitizer) Disable()
Disable 禁用脱敏器
func (*BaseDesensitizer) Enabled ¶ added in v0.1.0
func (bd *BaseDesensitizer) Enabled() bool
Enabled 检查脱敏器是否启用
func (*BaseDesensitizer) GetCacheStats ¶ added in v0.1.0
func (bd *BaseDesensitizer) GetCacheStats() CacheStats
GetCacheStats 获取缓存统计
func (*BaseDesensitizer) GetConfig ¶ added in v0.1.0
func (bd *BaseDesensitizer) GetConfig(key string) (interface{}, bool)
GetConfig 获取配置项
func (*BaseDesensitizer) Name ¶ added in v0.1.0
func (bd *BaseDesensitizer) Name() string
Name 返回脱敏器名称
func (*BaseDesensitizer) SetCacheEnabled ¶ added in v0.1.0
func (bd *BaseDesensitizer) SetCacheEnabled(enabled bool)
SetCacheEnabled 设置缓存状态
func (*BaseDesensitizer) SetLogger ¶ added in v0.1.0
func (bd *BaseDesensitizer) SetLogger(logger Logger)
SetLogger 设置日志记录器
type CacheStats ¶ added in v0.1.0
type CacheStats struct {
Hits int64 // 缓存命中次数
Misses int64 // 缓存未命中次数
Size int64 // 缓存大小
HitRatio float64 // 命中率
}
CacheStats 缓存统计信息
type CacheableDesensitizer ¶ added in v0.1.0
type CacheableDesensitizer interface {
Desensitizer
// CacheEnabled 检查是否启用缓存
CacheEnabled() bool
// SetCacheEnabled 设置缓存状态
SetCacheEnabled(enabled bool)
// ClearCache 清空缓存
ClearCache()
// GetCacheStats 获取缓存统计
GetCacheStats() CacheStats
}
CacheableDesensitizer 可缓存脱敏器接口 支持结果缓存以提升性能
type ChineseNameDesensitizer ¶ added in v0.1.0
type ChineseNameDesensitizer struct {
*BaseDesensitizer
}
ChineseNameDesensitizer 中文姓名脱敏器
func NewChineseNameDesensitizer ¶ added in v0.1.0
func NewChineseNameDesensitizer() *ChineseNameDesensitizer
NewChineseNameDesensitizer 创建中文姓名脱敏器
func (*ChineseNameDesensitizer) Desensitize ¶ added in v0.1.0
func (cnd *ChineseNameDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行中文姓名脱敏
func (*ChineseNameDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (cnd *ChineseNameDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*ChineseNameDesensitizer) GetTypePattern ¶ added in v0.1.0
func (cnd *ChineseNameDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式(中文姓名)
func (*ChineseNameDesensitizer) Supports ¶ added in v0.1.0
func (cnd *ChineseNameDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*ChineseNameDesensitizer) ValidateType ¶ added in v0.1.0
func (cnd *ChineseNameDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 验证数据是否为中文姓名
type ConfigValidator ¶ added in v0.1.0
type ConfigValidator interface {
// ValidateDesensitizer 验证脱敏器配置
ValidateDesensitizer(config map[string]interface{}) ValidationResult
// ValidateFieldConfig 验证字段配置
ValidateFieldConfig(config *FieldConfig) ValidationResult
// ValidateDataType 验证数据类型
ValidateDataType(dataType string) ValidationResult
}
ConfigValidator 配置验证器接口
type CustomFunctionDesensitizer ¶ added in v0.1.0
type CustomFunctionDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
CustomFunctionDesensitizer 自定义函数脱敏器
func NewCustomFunctionDesensitizer ¶ added in v0.1.0
func NewCustomFunctionDesensitizer(name string) *CustomFunctionDesensitizer
NewCustomFunctionDesensitizer 创建自定义函数脱敏器
func (*CustomFunctionDesensitizer) AddFunction ¶ added in v0.1.0
func (cfd *CustomFunctionDesensitizer) AddFunction(dataType string, fn func(string) string)
AddFunction 添加自定义脱敏函数
func (*CustomFunctionDesensitizer) Desensitize ¶ added in v0.1.0
func (cfd *CustomFunctionDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行自定义脱敏
func (*CustomFunctionDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (cfd *CustomFunctionDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*CustomFunctionDesensitizer) Supports ¶ added in v0.1.0
func (cfd *CustomFunctionDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
type DefaultDesensitizerManager ¶ added in v0.1.0
type DefaultDesensitizerManager struct {
// contains filtered or unexported fields
}
DefaultDesensitizerManager 默认脱敏器管理器实现
func (*DefaultDesensitizerManager) AutoDetectAndProcess ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) AutoDetectAndProcess(data string) (*DesensitizationResult, error)
AutoDetectAndProcess 自动检测数据类型并处理
func (*DefaultDesensitizerManager) ClearAllCaches ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) ClearAllCaches()
ClearAllCaches 清除所有脱敏器的缓存
func (*DefaultDesensitizerManager) CurrentVersion ¶ added in v0.1.3
func (dm *DefaultDesensitizerManager) CurrentVersion() int64
CurrentVersion 返回管理器当前版本号
func (*DefaultDesensitizerManager) Disable ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) Disable()
Disable 禁用管理器
func (*DefaultDesensitizerManager) DisableAll ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) DisableAll()
DisableAll 禁用所有脱敏器
func (*DefaultDesensitizerManager) Enable ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) Enable()
Enable 启用管理器
func (*DefaultDesensitizerManager) EnableAll ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) EnableAll()
EnableAll 启用所有脱敏器
func (*DefaultDesensitizerManager) GetDesensitizer ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) GetDesensitizer(name string) (Desensitizer, bool)
GetDesensitizer 获取指定名称的脱敏器
func (*DefaultDesensitizerManager) GetDesensitizersForType ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) GetDesensitizersForType(dataType string) []Desensitizer
GetDesensitizersForType 获取支持指定类型的所有脱敏器
func (*DefaultDesensitizerManager) GetDetailedStats ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) GetDetailedStats() map[string]interface{}
GetDetailedStats 获取详细统计信息
func (*DefaultDesensitizerManager) GetStats ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) GetStats() ManagerStats
GetStats 获取管理器统计信息
func (*DefaultDesensitizerManager) GetTypeMapping ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) GetTypeMapping() map[string][]string
GetTypeMapping 获取类型映射(只读)
func (*DefaultDesensitizerManager) IsEnabled ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) IsEnabled() bool
IsEnabled 检查管理器是否启用
func (*DefaultDesensitizerManager) ListDesensitizers ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) ListDesensitizers() []string
ListDesensitizers 列出所有已注册的脱敏器
func (*DefaultDesensitizerManager) ProcessWithDesensitizer ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) ProcessWithDesensitizer(name string, data string) (*DesensitizationResult, error)
ProcessWithDesensitizer 使用指定脱敏器处理数据
func (*DefaultDesensitizerManager) ProcessWithType ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) ProcessWithType(dataType string, data string) (*DesensitizationResult, error)
ProcessWithType 使用类型自动选择脱敏器处理数据
func (*DefaultDesensitizerManager) RegisterDesensitizer ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) RegisterDesensitizer(desensitizer Desensitizer) error
RegisterDesensitizer 注册脱敏器
func (*DefaultDesensitizerManager) UnregisterDesensitizer ¶ added in v0.1.0
func (dm *DefaultDesensitizerManager) UnregisterDesensitizer(name string) error
UnregisterDesensitizer 注销脱敏器
func (*DefaultDesensitizerManager) UpsertDesensitizer ¶ added in v0.1.3
func (dm *DefaultDesensitizerManager) UpsertDesensitizer(desensitizer Desensitizer) (int64, error)
UpsertDesensitizer 注册或热替换脱敏器,返回新的版本号。
type DesensitizationContext ¶ added in v0.1.0
type DesensitizationContext struct {
DataType string // 数据类型
FieldName string // 字段名称(结构体脱敏时)
FieldPath string // 字段路径(嵌套结构体时)
Metadata map[string]interface{} // 元数据
Logger Logger // 日志记录器
MaxDepth int // 最大递归深度
CurrentDepth int // 当前递归深度
}
DesensitizationContext 脱敏上下文 提供脱敏过程中的上下文信息
type DesensitizationResult ¶ added in v0.1.0
type DesensitizationResult struct {
Original string // 原始数据
Desensitized string // 脱敏后数据
DataType string // 数据类型
Desensitizer string // 使用的脱敏器
Duration int64 // 处理耗时(纳秒)
Cached bool // 是否来自缓存
Error error // 错误信息
Metadata map[string]interface{} // 额外元数据
}
DesensitizationResult 脱敏结果
type DesensitizeFunc ¶ added in v0.0.18
DesensitizeFunc 定义脱敏函数类型
type Desensitizer ¶ added in v0.1.0
type Desensitizer interface {
// Name 返回脱敏器名称,用于注册和识别
Name() string
// Supports 检查是否支持指定的数据类型
Supports(dataType string) bool
// Desensitize 执行脱敏操作
Desensitize(data string) (string, error)
// Configure 配置脱敏器参数
Configure(config map[string]interface{}) error
// Enabled 检查脱敏器是否启用
Enabled() bool
// Enable 启用脱敏器
Enable()
// Disable 禁用脱敏器
Disable()
}
Desensitizer 脱敏器接口 - 插拔式架构的核心 所有脱敏器都必须实现这个接口
type DesensitizerFactory ¶ added in v0.1.0
type DesensitizerFactory interface {
// CreateDesensitizer 创建脱敏器实例
CreateDesensitizer(name string, config map[string]interface{}) (Desensitizer, error)
// GetSupportedTypes 获取工厂支持的脱敏器类型
GetSupportedTypes() []string
// ValidateConfig 验证配置是否有效
ValidateConfig(name string, config map[string]interface{}) error
}
DesensitizerFactory 脱敏器工厂接口 用于创建脱敏器实例
type DesensitizerManager ¶ added in v0.1.0
type DesensitizerManager interface {
// RegisterDesensitizer 注册脱敏器
RegisterDesensitizer(desensitizer Desensitizer) error
// UpsertDesensitizer 注册或热替换脱敏器,返回版本号
UpsertDesensitizer(desensitizer Desensitizer) (int64, error)
// UnregisterDesensitizer 注销脱敏器
UnregisterDesensitizer(name string) error
// GetDesensitizer 获取指定名称的脱敏器
GetDesensitizer(name string) (Desensitizer, bool)
// GetDesensitizersForType 获取支持指定类型的所有脱敏器
GetDesensitizersForType(dataType string) []Desensitizer
// ListDesensitizers 列出所有已注册的脱敏器
ListDesensitizers() []string
// EnableAll 启用所有脱敏器
EnableAll()
// DisableAll 禁用所有脱敏器
DisableAll()
// GetStats 获取管理器统计信息
GetStats() ManagerStats
// CurrentVersion 获取当前版本号
CurrentVersion() int64
}
DesensitizerManager 脱敏器管理器接口 管理所有注册的脱敏器
type DlpConfig ¶ added in v0.0.18
type DlpConfig struct {
// contains filtered or unexported fields
}
func (*DlpConfig) GetStrategy ¶ added in v0.0.18
func (c *DlpConfig) GetStrategy(name string) (DesensitizeFunc, bool)
GetStrategy 获取脱敏策略
func (*DlpConfig) RegisterStrategy ¶ added in v0.0.18
func (c *DlpConfig) RegisterStrategy(name string, strategy DesensitizeFunc)
RegisterStrategy 注册自定义脱敏策略
type DlpEngine ¶ added in v0.0.18
type DlpEngine struct {
// contains filtered or unexported fields
}
DlpEngine 定义脱敏引擎结构体
func (*DlpEngine) BatchDesensitizeStruct ¶ added in v0.1.0
BatchDesensitizeStruct 批量结构体脱敏处理(新方法)
func (*DlpEngine) ClearDesensitizerCaches ¶ added in v0.1.0
func (e *DlpEngine) ClearDesensitizerCaches()
ClearDesensitizerCaches 清除所有脱敏器缓存
func (*DlpEngine) DesensitizeSpecificType ¶ added in v0.0.18
DesensitizeSpecificType 对指定类型的敏感信息进行脱敏
func (*DlpEngine) DesensitizeStruct ¶ added in v0.0.18
DesensitizeStruct 对结构体进行脱敏处理
func (*DlpEngine) DesensitizeStructAdvanced ¶ added in v0.1.0
DesensitizeStructAdvanced 高级结构体脱敏处理(新方法) 支持:嵌套结构体、slice/array、map、多种数据类型、递归处理
func (*DlpEngine) DesensitizeText ¶ added in v0.0.18
DesensitizeText 对文本进行脱敏处理
func (*DlpEngine) DetectSensitiveInfo ¶ added in v0.0.18
func (e *DlpEngine) DetectSensitiveInfo(text string) map[string][]MatchResult
DetectSensitiveInfo 检测文本中的所有敏感信息(优化版本)
func (*DlpEngine) DisableDesensitizer ¶ added in v0.1.0
DisableDesensitizer 禁用特定脱敏器
func (*DlpEngine) DisablePluginArchitecture ¶ added in v0.1.0
func (e *DlpEngine) DisablePluginArchitecture()
DisablePluginArchitecture 禁用插件架构,回退到传统模式
func (*DlpEngine) EnableDesensitizer ¶ added in v0.1.0
EnableDesensitizer 启用特定脱敏器
func (*DlpEngine) EnablePluginArchitecture ¶ added in v0.1.0
func (e *DlpEngine) EnablePluginArchitecture()
EnablePluginArchitecture 启用插件架构
func (*DlpEngine) GetCacheStats ¶ added in v0.1.0
GetCacheStats 获取缓存统计信息
func (*DlpEngine) GetDesensitizerManager ¶ added in v0.1.0
func (e *DlpEngine) GetDesensitizerManager() *SecurityEnhancedManager
GetDesensitizerManager 获取脱敏器管理器
func (*DlpEngine) GetDesensitizerStats ¶ added in v0.1.0
func (e *DlpEngine) GetDesensitizerStats() ManagerStats
GetDesensitizerStats 获取脱敏器统计信息
func (*DlpEngine) GetSupportedTypes ¶ added in v0.0.18
GetSupportedTypes 获取所有支持的敏感信息类型
func (*DlpEngine) GetSupportedTypesWithPlugin ¶ added in v0.1.0
GetSupportedTypesWithPlugin 获取插件架构支持的所有类型
func (*DlpEngine) IsPluginArchitectureEnabled ¶ added in v0.1.0
IsPluginArchitectureEnabled 检查是否启用插件架构
func (*DlpEngine) ListRegisteredDesensitizers ¶ added in v0.1.0
ListRegisteredDesensitizers 列出所有已注册的脱敏器
func (*DlpEngine) RegisterCustomDesensitizer ¶ added in v0.1.0
func (e *DlpEngine) RegisterCustomDesensitizer(desensitizer Desensitizer) error
RegisterCustomDesensitizer 注册自定义脱敏器
func (*DlpEngine) RegisterCustomMatcher ¶ added in v0.0.18
RegisterCustomMatcher 注册自定义匹配器
func (*DlpEngine) UnregisterDesensitizer ¶ added in v0.1.0
UnregisterDesensitizer 注销脱敏器
type DlpTagConfig ¶ added in v0.1.0
type DlpTagConfig struct {
Type string // 脱敏类型
Recursive bool // 是否递归处理嵌套结构体
Skip bool // 是否跳过此字段
Custom string // 自定义脱敏策略名称
}
DlpTagConfig 脱敏标签配置
type EnhancedBankCardDesensitizer ¶ added in v0.1.0
type EnhancedBankCardDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
EnhancedBankCardDesensitizer 增强的银行卡脱敏器
func NewEnhancedBankCardDesensitizer ¶ added in v0.1.0
func NewEnhancedBankCardDesensitizer() *EnhancedBankCardDesensitizer
NewEnhancedBankCardDesensitizer 创建增强的银行卡脱敏器
func (*EnhancedBankCardDesensitizer) Desensitize ¶ added in v0.1.0
func (ebcd *EnhancedBankCardDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行增强的银行卡脱敏
func (*EnhancedBankCardDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (ebcd *EnhancedBankCardDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*EnhancedBankCardDesensitizer) GetTypePattern ¶ added in v0.1.0
func (ebcd *EnhancedBankCardDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式
func (*EnhancedBankCardDesensitizer) Supports ¶ added in v0.1.0
func (ebcd *EnhancedBankCardDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*EnhancedBankCardDesensitizer) ValidateType ¶ added in v0.1.0
func (ebcd *EnhancedBankCardDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 增强的类型验证
type EnhancedEmailDesensitizer ¶ added in v0.1.0
type EnhancedEmailDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
EnhancedEmailDesensitizer 增强的邮箱脱敏器 - 防绕过版本
func NewEnhancedEmailDesensitizer ¶ added in v0.1.0
func NewEnhancedEmailDesensitizer() *EnhancedEmailDesensitizer
NewEnhancedEmailDesensitizer 创建增强的邮箱脱敏器
func (*EnhancedEmailDesensitizer) Desensitize ¶ added in v0.1.0
func (eed *EnhancedEmailDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行增强的邮箱脱敏
func (*EnhancedEmailDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (eed *EnhancedEmailDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*EnhancedEmailDesensitizer) GetTypePattern ¶ added in v0.1.0
func (eed *EnhancedEmailDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式
func (*EnhancedEmailDesensitizer) Supports ¶ added in v0.1.0
func (eed *EnhancedEmailDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*EnhancedEmailDesensitizer) ValidateType ¶ added in v0.1.0
func (eed *EnhancedEmailDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 增强的邮箱验证
type EnhancedIDCardDesensitizer ¶ added in v0.1.0
type EnhancedIDCardDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
EnhancedIDCardDesensitizer 增强的身份证脱敏器
func NewEnhancedIDCardDesensitizer ¶ added in v0.1.0
func NewEnhancedIDCardDesensitizer() *EnhancedIDCardDesensitizer
NewEnhancedIDCardDesensitizer 创建增强的身份证脱敏器
func (*EnhancedIDCardDesensitizer) Desensitize ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行增强的身份证脱敏
func (*EnhancedIDCardDesensitizer) GetConfig ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) GetConfig(key string) (interface{}, bool)
GetConfig 获取配置
func (*EnhancedIDCardDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*EnhancedIDCardDesensitizer) GetTypePattern ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式
func (*EnhancedIDCardDesensitizer) Supports ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*EnhancedIDCardDesensitizer) ValidateType ¶ added in v0.1.0
func (eicd *EnhancedIDCardDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 增强的类型验证
type EnhancedPhoneDesensitizer ¶ added in v0.1.0
type EnhancedPhoneDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
EnhancedPhoneDesensitizer 增强的手机号脱敏器 - 防绕过版本
func NewEnhancedPhoneDesensitizer ¶ added in v0.1.0
func NewEnhancedPhoneDesensitizer() *EnhancedPhoneDesensitizer
NewEnhancedPhoneDesensitizer 创建增强的手机号脱敏器
func (*EnhancedPhoneDesensitizer) Desensitize ¶ added in v0.1.0
func (epd *EnhancedPhoneDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行增强的手机号脱敏
func (*EnhancedPhoneDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (epd *EnhancedPhoneDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的类型
func (*EnhancedPhoneDesensitizer) GetTypePattern ¶ added in v0.1.0
func (epd *EnhancedPhoneDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式
func (*EnhancedPhoneDesensitizer) Supports ¶ added in v0.1.0
func (epd *EnhancedPhoneDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*EnhancedPhoneDesensitizer) ValidateType ¶ added in v0.1.0
func (epd *EnhancedPhoneDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 增强的类型验证
type FieldConfig ¶ added in v0.1.0
type FieldConfig struct {
Type string // 脱敏类型
Strategy string // 脱敏策略
Recursive bool // 是否递归处理
Skip bool // 是否跳过
Custom string // 自定义策略名称
Metadata map[string]interface{} // 额外配置
}
FieldConfig 字段配置
type Logger ¶ added in v0.1.0
type Logger interface {
Error(msg string, args ...interface{})
Warn(msg string, args ...interface{})
Debug(msg string, args ...interface{})
}
Logger 简化的日志接口,避免循环依赖
type ManagerStats ¶ added in v0.1.0
type ManagerStats struct {
TotalDesensitizers int // 总脱敏器数量
EnabledDesensitizers int // 启用的脱敏器数量
TypeCoverage map[string]int // 类型覆盖情况
PerformanceMetrics map[string]PerformanceMetrics // 性能指标
Version int64 // 版本号(热更新标记)
}
ManagerStats 管理器统计信息
type MatchResult ¶ added in v0.0.18
type MatchResult struct {
Type string // 匹配类型
Content string // 匹配内容
Position [2]int // 匹配位置 [start, end]
}
MatchResult 定义匹配结果结构体
type Matcher ¶ added in v0.0.18
type Matcher struct {
Name string // 匹配器名称
Pattern string // 正则表达式模式
Regex *regexp.Regexp // 编译后的正则表达式
Validator func(string) bool // 验证函数
Transformer func(string) string // 转换函数
Priority int // 优先级,数字越大优先级越高
Complexity int // 正则表达式复杂度评分
FastFilters []string // 快速包含过滤,全部缺失时跳过匹配
}
Matcher 定义匹配器结构体
type PerformanceMetrics ¶ added in v0.1.0
type PerformanceMetrics struct {
TotalCalls int64 // 总调用次数
TotalDuration int64 // 总耗时(纳秒)
AverageDuration float64 // 平均耗时(纳秒)
ErrorCount int64 // 错误次数
SuccessRate float64 // 成功率
}
PerformanceMetrics 性能指标
type PersonalInfoDesensitizer ¶ added in v0.1.0
type PersonalInfoDesensitizer struct {
*RegexDesensitizer
}
PersonalInfoDesensitizer 个人信息脱敏器
func NewPersonalInfoDesensitizer ¶ added in v0.1.0
func NewPersonalInfoDesensitizer() *PersonalInfoDesensitizer
NewPersonalInfoDesensitizer 创建个人信息脱敏器
type RateLimiter ¶ added in v0.1.0
type RateLimiter struct {
// contains filtered or unexported fields
}
RateLimiter 简单的速率限制器
func NewRateLimiter ¶ added in v0.1.0
func NewRateLimiter(maxRequests int, window time.Duration) *RateLimiter
NewRateLimiter 创建速率限制器
func (*RateLimiter) Allow ¶ added in v0.1.0
func (rl *RateLimiter) Allow(clientID string) bool
Allow 检查是否允许请求
type RegexDesensitizer ¶ added in v0.1.0
type RegexDesensitizer struct {
*BaseDesensitizer
// contains filtered or unexported fields
}
RegexDesensitizer 基于正则表达式的脱敏器
func NewRegexDesensitizer ¶ added in v0.1.0
func NewRegexDesensitizer(name string) *RegexDesensitizer
NewRegexDesensitizer 创建正则脱敏器
func (*RegexDesensitizer) AddPattern ¶ added in v0.1.0
func (rd *RegexDesensitizer) AddPattern(dataType, pattern, replacement string) error
AddPattern 添加正则模式
func (*RegexDesensitizer) BatchDesensitize ¶ added in v0.1.0
func (rd *RegexDesensitizer) BatchDesensitize(data []string) ([]string, error)
BatchDesensitize 批量脱敏
func (*RegexDesensitizer) Desensitize ¶ added in v0.1.0
func (rd *RegexDesensitizer) Desensitize(data string) (string, error)
Desensitize 执行脱敏操作
func (*RegexDesensitizer) DesensitizeWithContext ¶ added in v0.1.0
func (rd *RegexDesensitizer) DesensitizeWithContext(ctx context.Context, data string) (string, error)
DesensitizeWithContext 带上下文的脱敏
func (*RegexDesensitizer) GetSupportedTypes ¶ added in v0.1.0
func (rd *RegexDesensitizer) GetSupportedTypes() []string
GetSupportedTypes 获取支持的所有类型
func (*RegexDesensitizer) GetTypePattern ¶ added in v0.1.0
func (rd *RegexDesensitizer) GetTypePattern(dataType string) string
GetTypePattern 获取类型的正则表达式模式
func (*RegexDesensitizer) Supports ¶ added in v0.1.0
func (rd *RegexDesensitizer) Supports(dataType string) bool
Supports 检查是否支持指定的数据类型
func (*RegexDesensitizer) ValidateType ¶ added in v0.1.0
func (rd *RegexDesensitizer) ValidateType(data string, dataType string) bool
ValidateType 验证数据是否符合指定类型
type RegexSearcher ¶ added in v0.0.18
type RegexSearcher struct {
// contains filtered or unexported fields
}
RegexSearcher 定义正则搜索器
func NewRegexSearcher ¶ added in v0.0.18
func NewRegexSearcher() *RegexSearcher
NewRegexSearcher 创建新的正则搜索器
func (*RegexSearcher) AddMatcher ¶ added in v0.0.18
func (s *RegexSearcher) AddMatcher(matcher *Matcher) error
AddMatcher 添加新的匹配器
func (*RegexSearcher) DetectAllTypes ¶ added in v0.1.0
func (s *RegexSearcher) DetectAllTypes(text string) map[string][]MatchResult
DetectAllTypes 一次性检测所有类型的敏感信息(优化版本)
func (*RegexSearcher) GetAllSupportedTypes ¶ added in v0.0.18
func (s *RegexSearcher) GetAllSupportedTypes() []string
GetAllSupportedTypes 获取所有支持的敏感信息类型
func (*RegexSearcher) GetMatcher ¶ added in v0.0.18
func (s *RegexSearcher) GetMatcher(name string) *Matcher
GetMatcher 获取指定名称的匹配器
func (*RegexSearcher) Match ¶ added in v0.0.18
func (s *RegexSearcher) Match(text string) []MatchResult
Match 执行匹配操作
func (*RegexSearcher) RemoveMatcher ¶ added in v0.0.18
func (s *RegexSearcher) RemoveMatcher(name string)
RemoveMatcher 移除匹配器
func (*RegexSearcher) ReplaceAllTypes ¶ added in v0.1.0
func (s *RegexSearcher) ReplaceAllTypes(text string) string
ReplaceAllTypes 一次性处理所有类型的敏感信息(重新设计的算法)
func (*RegexSearcher) ReplaceParallel ¶ added in v0.0.18
func (s *RegexSearcher) ReplaceParallel(text string, matchType string) string
ReplaceParallel 并行处理敏感信息替换
func (*RegexSearcher) SearchSensitiveByType ¶ added in v0.0.18
func (s *RegexSearcher) SearchSensitiveByType(text string, typeName string) []MatchResult
SearchSensitiveByType 按类型搜索敏感信息
func (*RegexSearcher) UpdateMatcher ¶ added in v0.0.18
func (s *RegexSearcher) UpdateMatcher(name string, pattern string, validator func(string) bool, transformer func(string) string) error
UpdateMatcher 更新匹配器
type RequestInfo ¶ added in v0.1.0
RequestInfo 请求信息
type SecurityEnhancedManager ¶ added in v0.1.0
type SecurityEnhancedManager struct {
*DefaultDesensitizerManager
// contains filtered or unexported fields
}
SecurityEnhancedManager 安全增强的脱敏管理器
func GetGlobalManager ¶ added in v0.1.0
func GetGlobalManager() *SecurityEnhancedManager
GetGlobalManager 获取全局脱敏器管理器
func NewSecurityEnhancedManager ¶ added in v0.1.0
func NewSecurityEnhancedManager() *SecurityEnhancedManager
NewSecurityEnhancedManager 创建安全增强管理器
func (*SecurityEnhancedManager) GetSecurityEvents ¶ added in v0.1.0
func (sem *SecurityEnhancedManager) GetSecurityEvents() []SecurityEvent
GetSecurityEvents 获取安全事件日志
func (*SecurityEnhancedManager) GetSecurityStats ¶ added in v0.1.0
func (sem *SecurityEnhancedManager) GetSecurityStats() map[string]interface{}
GetSecurityStats 获取安全统计信息
func (*SecurityEnhancedManager) SecureDesensitize ¶ added in v0.1.0
func (sem *SecurityEnhancedManager) SecureDesensitize(data string) (*DesensitizationResult, error)
SecureDesensitize 安全增强的脱敏方法
type SecurityEvent ¶ added in v0.1.0
type SecurityEvent struct {
Timestamp time.Time
EventType string
Data string
ThreatLevel string
Details string
}
SecurityEvent 安全事件
type Sensitive ¶ added in v0.0.18
type Sensitive struct {
Name string `dlp:"chinese_name" json:"name,omitempty"` // 姓名
IDCard string `dlp:"id_card" json:"id_card,omitempty"` // 身份证
FixedPhone string `dlp:"landline" json:"landline,omitempty"` // 固定电话
MobilePhone string `dlp:"mobile" json:"mobile,omitempty"` // 手机号
Address string `dlp:"address" json:"address,omitempty"` // 地址
Email string `dlp:"email" json:"email,omitempty"` // 邮箱
Password string `dlp:"password" json:"password,omitempty"` // 密码
LicensePlate string `dlp:"plate" json:"plate,omitempty"` // 车牌
BankCard string `dlp:"bank_card" json:"bank_card,omitempty"` // 银行卡
CreditCard string `dlp:"credit_card" json:"credit_card,omitempty"` // 信用卡
IPv4 string `dlp:"ipv4" json:"ipv_4,omitempty"` // IPv4
IPv6 string `dlp:"ipv6" json:"ipv_6,omitempty"` // IPv6
Base64 string `dlp:"base64" json:"base_64,omitempty"` // Base64编码
URL string `dlp:"url" json:"url,omitempty"` // URL
FirstMask string `dlp:"first_mask" json:"first_mask,omitempty"` // 仅保留首字符
ClearToNull string `dlp:"null" json:"null,omitempty"` // 清空为null
ClearToEmpty string `dlp:"empty" json:"empty,omitempty"` // 清空为空字符串
JWT string `dlp:"jwt" json:"jwt,omitempty"` // JWT令牌
SocialSecurity string `dlp:"social_security" json:"social_security,omitempty"` // 社会保障号
Passport string `dlp:"passport" json:"passport,omitempty"` // 护照号
DriversLicense string `dlp:"license_number" json:"license_number,omitempty"` // 驾驶证号
MedicalID string `dlp:"medical_id" json:"medical_id,omitempty"` // 医保卡号
CompanyID string `dlp:"company_id" json:"company_id,omitempty"` // 公司编号
DeviceID string `dlp:"device_id" json:"device_id,omitempty"` // 设备ID
MAC string `dlp:"mac" json:"mac,omitempty"` // MAC地址
VIN string `dlp:"vin" json:"vin,omitempty"` // 车架号
IMEI string `dlp:"imei" json:"imei,omitempty"` // IMEI号
Coordinate string `dlp:"coordinate" json:"coordinate,omitempty"` // 地理坐标
AccessToken string `dlp:"access_token" json:"access_token,omitempty"` // 访问令牌
RefreshToken string `dlp:"refresh_token" json:"refresh_token,omitempty"` // 刷新令牌
PrivateKey string `dlp:"private_key" json:"private_key,omitempty"` // 私钥
PublicKey string `dlp:"public_key" json:"public_key,omitempty"` // 公钥
Certificate string `dlp:"certificate" json:"certificate,omitempty"` // 证书
Username string `dlp:"username" json:"username,omitempty"` // 用户名
Nickname string `dlp:"nickname" json:"nickname,omitempty"` // 昵称
Biography string `dlp:"biography" json:"biography,omitempty"` // 个人简介
Signature string `dlp:"signature" json:"signature,omitempty"` // 个性签名
Comment string `dlp:"comment" json:"comment,omitempty"` // 评论内容
}
Sensitive 定义敏感信息结构体
type StructDesensitizer ¶ added in v0.1.0
type StructDesensitizer struct {
// contains filtered or unexported fields
}
StructDesensitizer 结构体脱敏器
func NewStructDesensitizer ¶ added in v0.1.0
func NewStructDesensitizer(engine *DlpEngine) *StructDesensitizer
NewStructDesensitizer 创建结构体脱敏器
func (*StructDesensitizer) BatchDesensitizeStruct ¶ added in v0.1.0
func (s *StructDesensitizer) BatchDesensitizeStruct(data interface{}) error
BatchDesensitizeStruct 批量处理结构体切片
func (*StructDesensitizer) DesensitizeStructAdvanced ¶ added in v0.1.0
func (s *StructDesensitizer) DesensitizeStructAdvanced(data interface{}) error
DesensitizeStructAdvanced 高级结构体脱敏处理
type StructFieldProcessor ¶ added in v0.1.0
type StructFieldProcessor interface {
// ProcessField 处理单个字段
ProcessField(field reflect.Value, fieldType reflect.StructField, ctx *DesensitizationContext) error
// ProcessStruct 处理整个结构体
ProcessStruct(structValue reflect.Value, ctx *DesensitizationContext) error
// GetFieldConfig 获取字段配置
GetFieldConfig(fieldType reflect.StructField) (*FieldConfig, error)
// ShouldProcess 检查是否应该处理该字段
ShouldProcess(fieldType reflect.StructField) bool
}
StructFieldProcessor 结构体字段处理器接口 专门处理结构体字段的脱敏
type TypeSpecificDesensitizer ¶ added in v0.1.0
type TypeSpecificDesensitizer interface {
Desensitizer
// GetSupportedTypes 获取支持的所有类型
GetSupportedTypes() []string
// GetTypePattern 获取类型的正则表达式模式
GetTypePattern(dataType string) string
// ValidateType 验证数据是否符合指定类型
ValidateType(data string, dataType string) bool
}
TypeSpecificDesensitizer 类型专用脱敏器接口 用于特定类型的专业脱敏
type ValidationResult ¶ added in v0.1.0
type ValidationResult struct {
Valid bool // 是否有效
Errors []string // 错误列表
Warnings []string // 警告列表
}
ValidationResult 验证结果