大家好,我是渔夫子。
今天给大家推荐一款用于数据脱敏的Go开源包:go-mask。
脱敏处理,即在输出敏感数据时用星号或其他字符代替敏感信息,如手机号码、身份证号和姓名等。
go-mask虽新近提交,仅两周,星标数仅71个,但功能强大。让我们看看它的主要特点和使用方法。
go-mask支持有限的标签,用户可根据需求自定义脱敏函数。其支持的标签包括:
对结构体中的string类型字段进行脱敏,通过在字段后添加特定标签实现。示例如下:
输出结果如下:
整型和浮点数类型的字段使用mask:"randomXXX"标签,将数据转换为0到XXX范围内的随机数。示例如下:
对应的输出结果如下:
对slice类型的处理与对结构体或string、int、float64类型相似。示例如下:
输出结果如下:
对map类型的处理针对的是map中的value,对key不做处理。示例如下:
输出结果如下:
go-mask还支持自定义脱敏函数。通过mask.RegisterMaskStringFunc函数注册自定义函数。示例如下,定义了regexp标签和MaskRegExp脱敏处理函数:
输出结果:
总结:go-mask提供了基本的脱敏功能,并允许用户自定义处理逻辑。如果你的业务中有脱敏输出需求,推荐使用此包。
开源地址:github.com/showa-93/go-...
特别推荐:关注「Go学堂」公众号,专注于Go项目实战、项目中踩坑经验及避坑指南、各种好玩的Go工具。关注后可获赠《100个Go常见错误》pdf文档和各类Go经典电子书籍。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。