背景
在数据处理或清洗项目中,我们经常需要对敏感信息进行脱敏处理。这些敏感信息包括但不限于身份证号、手机号、邮箱地址和银行卡号等。为了简化这类任务,可以编写一个 Golang 的脱敏扩展包。该包封装了一些常用的脱敏方法,以便在未来的开发中能更方便地进行敏感信息的处理,确保数据的安全和隐私保护。
包地址
该脱敏扩展包的代码托管在 GitHub
上,可以通过以下链接访问和下载:
1 2
| https://github.com/GoFinalPack/pf_util
|
使用
安装
要使用这个脱敏扩展包,使用 go get 命令来安装最新版本的包
1 2
| go get github.com/GoFinalPack/pf_util
|
PS: 目前更新到 v1.0.0 版本
使用示例
默认的脱敏
以下是一些使用默认脱敏方法的示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import ( "fmt" "pf_util" "testing" )
func TestDesensitizedUtilUserId(T *testing.T) { d := pf_util.DesensitizedUtil{} res := d.SetType(0).Desensitized("10000") fmt.Println(res) }
func TestDesensitizedUtilName(T *testing.T) { d := pf_util.DesensitizedUtil{} res := d.SetType(1).Desensitized("黄宗泽") fmt.Println(res) }
func TestDesensitizedUtilIDcard(T *testing.T) { d := pf_util.DesensitizedUtil{} res := d.SetType(2).Desensitized("51343620000320711X") fmt.Println(res) }
|
Desensitized
方法提供了默认的脱敏功能,其中 SetType 方法用于设置脱敏类型。以下是支持的脱敏类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 0 不暴露 直接返回 0 1 ChineseName 姓名脱敏 2 IdCard 身份证脱敏 3 FixedPhone 固定电话脱敏 4 MobilePhone 手机号脱敏 5 ADDRESS 地址脱敏 6 EMAIL 邮箱脱敏 7 PASSWORD 密码脱敏 8 CarLicense 车牌号脱敏 9 BankCard 银行卡脱敏 10 IPV4 IPV4脱敏 11 IPV6 IPV6脱敏 12 FirstMask 前几位脱敏 13 ClearToNull 清空 14 ClearToEmpty 清空
|
自定义脱敏
还可以使用 Method 方法进行自定义脱敏。以下是自定义脱敏的示例代码
1 2 3 4 5 6
| func TestCustomerIDcard(T *testing.T) { d := pf_util.DesensitizedUtil{} res := d.Method("idCardNum", "51343620000320711X", 4, 2) fmt.Println(res) }
|
PS:
Method
方法允许你进行更灵活的脱敏处理。第一个参数指定脱敏类型,第二个参数是需要脱敏的内容,第三个参数是脱敏的长度,第四个参数是脱敏的位置。例如
1 2 3 4
| d.Method("idCardNum", "51343620000320711X", 4, 2) d.Method("address", "四川省成都市高新区天府三街", 8)
|
包结构
该包的结构如下所示:
1 2 3 4 5 6 7 8
| ├── README.md ├── go.mod ├── pf_util.go ├── tests │ └── pf_utile_test.go └── utils └── DesensitizedUtil.go
|
其中,DesensitizedUtil.go
文件提供了默认的脱敏方法和自定义脱敏方法。这些方法帮助你在开发中轻松实现敏感信息的脱敏处理。