desensitize

package
v0.11.28 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

* @Author: kamalyes 501893067@qq.com * @Date: 2024-12-18 18:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-12-19 08:15:19 * @FilePath: \go-toolbox\pkg\desensitize\adapter.go * @Description: * 该文件实现了数据脱敏的功能,包括注册脱敏器和执行脱敏操作。 * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-08-03 22:19:05 * @FilePath: \go-toolbox\pkg\desensitize\constants.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-12-19 08:15:19 * @FilePath: \go-toolbox\pkg\desensitize\model.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Desensitization added in v0.11.23

func Desensitization(obj interface{}) error

Desensitization 执行脱敏操作 @param obj: 需要进行脱敏的对象,应该是结构体或指向结构体的指针。 @returns

  • 返回可能的错误。

func Desensitize

func Desensitize(str string, DesensitizeType DesensitizeType, options ...DesensitizeOptions) string

Desensitize 数据脱敏

func OperateByRule added in v0.11.23

func OperateByRule(desensitizerType string, in interface{}) (interface{}, error)

OperateByRule 根据规则进行脱敏操作 @param desensitizerType: 脱敏器的类型标识。 @param in: 需要脱敏的输入值,应该是字符串类型。 @returns

  • 返回脱敏后的值和可能的错误。

func RegisterDesensitizer added in v0.11.23

func RegisterDesensitizer(desensitizerType string, desensitizer Desensitizer)

RegisterDesensitizer 注册脱敏器(支持现有和自定义) @param desensitizerType: 脱敏器的类型标识。 @param desensitizer: 实现了 Desensitizer 接口的脱敏器实例。 @returns

  • 无返回值。

func SensitiveData

func SensitiveData(str string, start, end int) string

通用脱敏函数

func SensitizeBankCard

func SensitizeBankCard(str string, cardLength int) string

银行卡号脱敏

func SensitizeIpv4

func SensitizeIpv4(str string) string

ipv4 脱敏

func SensitizeIpv6

func SensitizeIpv6(str string) string

ipv6 脱敏

func SensitizePhoneNumber

func SensitizePhoneNumber(str string, start, end int) string

手机号脱敏

Types

type DefaultDesensitizer added in v0.11.23

type DefaultDesensitizer struct {
	// contains filtered or unexported fields
}

DefaultDesensitizer 默认脱敏适配器 该结构体实现了 Desensitizer 接口,用于处理标准的脱敏逻辑。

func (*DefaultDesensitizer) Desensitize added in v0.11.23

func (e *DefaultDesensitizer) Desensitize(value string) string

Desensitize 方法实现 根据指定的脱敏类型对输入的值进行脱敏处理。 @param value: 需要脱敏的字符串值。 @returns

  • 返回脱敏后的字符串值。

type DesensitizeOptions

type DesensitizeOptions struct {
	CustomExtensionStartIndex int
	CustomExtensionEndIndex   int
	ChineseNameStartIndex     int
	IdCardStartIndex          int
	IdCardLength              int
	PhoneNumberStartIndex     int
	PhoneNumberEndIndex       int
	MobilePhoneStartIndex     int
	EmailStartIndex           int
}

DesensitizeOptions 脱敏选项

func NewDesensitizeOptions

func NewDesensitizeOptions() DesensitizeOptions

NewDesensitizeOptions 创建带有默认值的 DesensitizeOptions

type DesensitizeType

type DesensitizeType int
const (
	CustomExtension DesensitizeType = iota + 1 // 自定义扩展
	ChineseName                                // 中文名称
	IDCard                                     // 身份证号
	PhoneNumber                                // 手机号码
	MobilePhone                                // 移动电话号码
	Address                                    // 地址
	Email                                      // 邮箱
	Password                                   // 密码
	CarLicense                                 // 车牌号:油车、电车
	BankCard                                   // 银行卡号
	IPV4                                       // ipv4
	IPV6                                       // ipv6
)

type Desensitizer added in v0.11.23

type Desensitizer interface {
	Desensitize(value string) string // 输入一个值,返回脱敏后的值
}

Desensitizer 接口定义 该接口用于定义脱敏器的基本行为,包含一个脱敏方法。

Jump to

Keyboard shortcuts

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