dlp

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2025 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
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代码仓库地址
)
View Source
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

View Source
var (
	ErrInvalidMatcher = errors.New("invalid matcher configuration")
	ErrNotStruct      = errors.New("input must be a struct")
)
View Source
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
)
View Source
var (
	ErrUnsupportedType = errors.New("unsupported field type for desensitization")
	ErrInvalidTag      = errors.New("invalid dlp tag configuration")
)

Functions

func APIKeyDesensitize added in v0.0.18

func APIKeyDesensitize(key string) string

APIKeyDesensitize 处理API密钥,隐藏前面部分

func AccessTokenDesensitize added in v0.0.18

func AccessTokenDesensitize(token string) string

AccessTokenDesensitize 访问令牌脱敏

func AddressDesensitize added in v0.0.18

func AddressDesensitize(address string) string

AddressDesensitize 地址脱敏

func AesDesensitize added in v0.0.18

func AesDesensitize(data, key []byte) (string, error)

AesDesensitize AES加密脱敏方法

func BankCardDesensitize added in v0.0.18

func BankCardDesensitize(card string) string

BankCardDesensitize 银行卡脱敏,保留前6位和后4位,中间用*代替

func Base64Desensitize added in v0.0.18

func Base64Desensitize(data string) string

Base64Desensitize Base64编码脱敏方法

func BiographyDesensitize added in v0.0.18

func BiographyDesensitize(bio string) string

BiographyDesensitize 个人简介脱敏

func CertificateDesensitize added in v0.0.18

func CertificateDesensitize(cert string) string

CertificateDesensitize 证书脱敏

func ChineseIDCardDesensitize added in v0.0.18

func ChineseIDCardDesensitize(id string) bool

ChineseIDCardDesensitize 验证中国身份证号

func ChineseNameDesensitize added in v0.0.18

func ChineseNameDesensitize(name string) string

ChineseNameDesensitize 中文姓名脱敏

func ClearToEmptyDesensitize added in v0.0.18

func ClearToEmptyDesensitize(_ string) string

ClearToEmptyDesensitize 清空为空字符串的脱敏实现

func ClearToNullDesensitize added in v0.0.18

func ClearToNullDesensitize(_ string) string

ClearToNullDesensitize 清空为null的脱敏实现

func CommentDesensitize added in v0.0.18

func CommentDesensitize(comment string) string

CommentDesensitize 评论内容脱敏

func CompanyIDDesensitize added in v0.0.18

func CompanyIDDesensitize(id string) string

CompanyIDDesensitize 公司编号(统一信用代码)脱敏

func CoordinateDesensitize added in v0.0.18

func CoordinateDesensitize(coord string) string

CoordinateDesensitize 地理坐标脱敏

func CreditCardDesensitize added in v0.0.18

func CreditCardDesensitize(card string) string

CreditCardDesensitize 处理信用卡号,保留前6位和后4位,中间用*代替

func CustomizeKeepLengthDesensitize added in v0.0.18

func CustomizeKeepLengthDesensitize(data string, preKeep, postKeep int) string

CustomizeKeepLengthDesensitize 自定义保留长度的脱敏

func DesDesensitize added in v0.0.18

func DesDesensitize(data string, key []byte) (string, error)

DesDesensitize DES加密脱敏方法

func DeviceIDDesensitize added in v0.0.18

func DeviceIDDesensitize(id string) string

DeviceIDDesensitize 设备ID脱敏

func DomainDesensitize added in v0.0.18

func DomainDesensitize(domain string) string

DomainDesensitize 处理域名,隐藏前面部分

func DriversLicenseDesensitize added in v0.0.18

func DriversLicenseDesensitize(license string) string

DriversLicenseDesensitize 驾驶证号脱敏

func EmailDesensitize added in v0.0.18

func EmailDesensitize(email string) string

EmailDesensitize 邮箱脱敏,隐藏用户名中间3位,域名不打码

func FirstMaskDesensitize added in v0.0.18

func FirstMaskDesensitize(data string) string

FirstMaskDesensitize 仅保留首字符脱敏

func FixedPhoneDesensitize added in v0.0.18

func FixedPhoneDesensitize(phone string) string

FixedPhoneDesensitize 固定电话脱敏

func IDCardDesensitize added in v0.1.0

func IDCardDesensitize(idCard string) string

IDCardDesensitize 身份证脱敏 身份证号结构:前6位地区码 + 8位出生日期(YYYYMMDD) + 3位顺序码 + 1位校验码 脱敏策略:保留前6位(地区码)和后4位(后3位顺序码+校验码),中间的出生日期全部脱敏

func IMEIDesensitize added in v0.0.18

func IMEIDesensitize(imei string) string

IMEIDesensitize IMEI号脱敏

func IPv4Desensitize added in v0.0.18

func IPv4Desensitize(ip string) string

IPv4Desensitize IPv4地址脱敏

func IPv6Desensitize added in v0.0.18

func IPv6Desensitize(ip string) string

IPv6Desensitize IPv6地址脱敏

func JWTDesensitize added in v0.0.18

func JWTDesensitize(token string) string

JWTDesensitize JWT令牌脱敏

func LatLngDesensitize added in v0.0.18

func LatLngDesensitize(latLng string) string

LatLngDesensitize 处理经纬度,隐藏具体数值

func LicensePlateDesensitize added in v0.0.21

func LicensePlateDesensitize(license string) string

LicensePlateDesensitize 车牌号脱敏

func MACDesensitize added in v0.0.18

func MACDesensitize(mac string) string

MACDesensitize MAC地址脱敏

func MD5Desensitize added in v0.0.18

func MD5Desensitize(input string) string

MD5Desensitize 计算输入的MD5哈希值并返回

func MaskString added in v0.0.18

func MaskString(str string, start, end int, maskChar string) string

MaskString 字符串遮罩处理

func MedicalIDDesensitize added in v0.0.18

func MedicalIDDesensitize(id string) string

MedicalIDDesensitize 医保卡号脱敏

func MobilePhoneDesensitize added in v0.0.18

func MobilePhoneDesensitize(phone string) string

MobilePhoneDesensitize 手机号脱敏

func NicknameDesensitize added in v0.0.18

func NicknameDesensitize(nickname string) string

NicknameDesensitize 昵称脱敏

func PassportDesensitize added in v0.0.18

func PassportDesensitize(passport string) string

PassportDesensitize 护照号脱敏

func PasswordDesensitize added in v0.0.18

func PasswordDesensitize(password string) string

PasswordDesensitize 密码脱敏

func PostalCodeDesensitize added in v0.0.18

func PostalCodeDesensitize(code string) string

PostalCodeDesensitize 处理邮政编码,隐藏中间三位

func PrivateKeyDesensitize added in v0.0.18

func PrivateKeyDesensitize(_ string) string

PrivateKeyDesensitize 私钥脱敏

func ProcessSensitiveData added in v0.0.18

func ProcessSensitiveData(v interface{}) error

ProcessSensitiveData 处理结构体的脱敏

func PublicKeyDesensitize added in v0.0.18

func PublicKeyDesensitize(key string) string

PublicKeyDesensitize 公钥脱敏

func RefreshTokenDesensitize added in v0.0.18

func RefreshTokenDesensitize(token string) string

RefreshTokenDesensitize 刷新令牌脱敏

func RegisterURLSensitiveParams added in v0.0.18

func RegisterURLSensitiveParams(params ...string)

RegisterURLSensitiveParams 添加自定义的URL参数脱敏规则

func RsaDesensitize added in v0.0.18

func RsaDesensitize(data []byte, publicKey *rsa.PublicKey) (string, error)

RsaDesensitize RSA加密脱敏方法

func SHA1Desensitize added in v0.0.18

func SHA1Desensitize(input string) string

SHA1Desensitize 计算输入的SHA1哈希值并返回

func SHA256Desensitize added in v0.0.18

func SHA256Desensitize(input string) string

SHA256Desensitize 处理输入,返回 SHA-256 哈希值

func SetGlobalLogger added in v0.1.0

func SetGlobalLogger(logger Logger)

SetGlobalLogger 设置全局管理器的日志记录器

func SignatureDesensitize added in v0.0.18

func SignatureDesensitize(signature string) string

SignatureDesensitize 个性签名脱敏

func SocialSecurityDesensitize added in v0.0.18

func SocialSecurityDesensitize(ssn string) string

SocialSecurityDesensitize 社会保障号脱敏

func StringDesensitize added in v0.0.18

func StringDesensitize(data string, filterWords ...string) string

StringDesensitize 字符串脱敏

func URLDesensitize added in v0.0.18

func URLDesensitize(rawURL string) string

URLDesensitize URL脱敏实现 - 全面考虑各种敏感组合

func UUIDDesensitize added in v0.0.18

func UUIDDesensitize(uuid string) string

UUIDDesensitize 处理UUID,隐藏中间部分

func UsernameDesensitize added in v0.0.18

func UsernameDesensitize(username string) string

UsernameDesensitize 用户名脱敏,显示前后两位

func VINDesensitize added in v0.0.18

func VINDesensitize(vin string) string

VINDesensitize 车架号脱敏

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) Enable added in v0.1.0

func (bd *BaseDesensitizer) Enable()

Enable 启用脱敏器

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

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

type DesensitizeFunc func(string) string

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 GetConfig added in v0.0.18

func GetConfig() *DlpConfig

GetConfig 获取全局配置实例

func (*DlpConfig) Disable added in v0.0.18

func (c *DlpConfig) Disable()

Disable 禁用脱敏功能

func (*DlpConfig) Enable added in v0.0.18

func (c *DlpConfig) Enable()

Enable 启用脱敏功能

func (*DlpConfig) GetStrategy added in v0.0.18

func (c *DlpConfig) GetStrategy(name string) (DesensitizeFunc, bool)

GetStrategy 获取脱敏策略

func (*DlpConfig) IsEnabled added in v0.0.18

func (c *DlpConfig) IsEnabled() bool

IsEnabled 检查脱敏功能是否启用

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 NewDlpEngine added in v0.0.18

func NewDlpEngine() *DlpEngine

NewDlpEngine 创建新的DLP引擎实例

func (*DlpEngine) BatchDesensitizeStruct added in v0.1.0

func (e *DlpEngine) BatchDesensitizeStruct(data interface{}) error

BatchDesensitizeStruct 批量结构体脱敏处理(新方法)

func (*DlpEngine) ClearCache added in v0.1.0

func (e *DlpEngine) ClearCache()

ClearCache 清除缓存

func (*DlpEngine) ClearDesensitizerCaches added in v0.1.0

func (e *DlpEngine) ClearDesensitizerCaches()

ClearDesensitizerCaches 清除所有脱敏器缓存

func (*DlpEngine) DesensitizeSpecificType added in v0.0.18

func (e *DlpEngine) DesensitizeSpecificType(text string, sensitiveType string) string

DesensitizeSpecificType 对指定类型的敏感信息进行脱敏

func (*DlpEngine) DesensitizeStruct added in v0.0.18

func (e *DlpEngine) DesensitizeStruct(data interface{}) error

DesensitizeStruct 对结构体进行脱敏处理

func (*DlpEngine) DesensitizeStructAdvanced added in v0.1.0

func (e *DlpEngine) DesensitizeStructAdvanced(data interface{}) error

DesensitizeStructAdvanced 高级结构体脱敏处理(新方法) 支持:嵌套结构体、slice/array、map、多种数据类型、递归处理

func (*DlpEngine) DesensitizeText added in v0.0.18

func (e *DlpEngine) DesensitizeText(text string) string

DesensitizeText 对文本进行脱敏处理

func (*DlpEngine) DetectSensitiveInfo added in v0.0.18

func (e *DlpEngine) DetectSensitiveInfo(text string) map[string][]MatchResult

DetectSensitiveInfo 检测文本中的所有敏感信息(优化版本)

func (*DlpEngine) Disable added in v0.0.18

func (e *DlpEngine) Disable()

Disable 禁用DLP引擎

func (*DlpEngine) DisableDesensitizer added in v0.1.0

func (e *DlpEngine) DisableDesensitizer(name string) error

DisableDesensitizer 禁用特定脱敏器

func (*DlpEngine) DisablePluginArchitecture added in v0.1.0

func (e *DlpEngine) DisablePluginArchitecture()

DisablePluginArchitecture 禁用插件架构,回退到传统模式

func (*DlpEngine) Enable added in v0.0.18

func (e *DlpEngine) Enable()

Enable 启用DLP引擎

func (*DlpEngine) EnableDesensitizer added in v0.1.0

func (e *DlpEngine) EnableDesensitizer(name string) error

EnableDesensitizer 启用特定脱敏器

func (*DlpEngine) EnablePluginArchitecture added in v0.1.0

func (e *DlpEngine) EnablePluginArchitecture()

EnablePluginArchitecture 启用插件架构

func (*DlpEngine) GetCacheStats added in v0.1.0

func (e *DlpEngine) GetCacheStats() (hits, misses int64)

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

func (e *DlpEngine) GetSupportedTypes() []string

GetSupportedTypes 获取所有支持的敏感信息类型

func (*DlpEngine) GetSupportedTypesWithPlugin added in v0.1.0

func (e *DlpEngine) GetSupportedTypesWithPlugin() map[string][]string

GetSupportedTypesWithPlugin 获取插件架构支持的所有类型

func (*DlpEngine) IsEnabled added in v0.0.18

func (e *DlpEngine) IsEnabled() bool

IsEnabled 检查DLP引擎是否启用

func (*DlpEngine) IsPluginArchitectureEnabled added in v0.1.0

func (e *DlpEngine) IsPluginArchitectureEnabled() bool

IsPluginArchitectureEnabled 检查是否启用插件架构

func (*DlpEngine) ListRegisteredDesensitizers added in v0.1.0

func (e *DlpEngine) ListRegisteredDesensitizers() []string

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

func (e *DlpEngine) RegisterCustomMatcher(matcher *Matcher) error

RegisterCustomMatcher 注册自定义匹配器

func (*DlpEngine) UnregisterDesensitizer added in v0.1.0

func (e *DlpEngine) UnregisterDesensitizer(name string) error

UnregisterDesensitizer 注销脱敏器

func (*DlpEngine) Version added in v0.1.3

func (e *DlpEngine) Version() int64

Version 返回当前规则版本(热更新计数)。

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

type RequestInfo struct {
	Count     int
	FirstTime time.Time
	LastTime  time.Time
}

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 验证结果

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL