一个基于 PHP 语言的 mask-cn 中文数据脱敏库

今天给大伙儿推荐一个开源项目 —— 推荐一个开箱即用的中文数据脱敏库 mask-cn。mask-cn 是一个面向中文本土场景的敏感数据脱敏库,口号是"开箱即用,无需配置"。它专门针对国内常见的隐私字段做处理 想深入了解的同学,建议收藏这篇。

项目地址:
https://github.com/SnowmanNunu/mask-cn

01

PART


项目是什么

项目是什么

mask-cn 是一个面向中文本土场景的敏感数据脱敏库,口号是"开箱即用,无需配置"。它专门针对国内常见的隐私字段做处理,比如手机号、身份证、银行卡、中文姓名(含复姓)、车牌等,一行静态调用就能把敏感信息打码,非常适合在日志、接口返回、导出文件里保护用户隐私。

仓库地址:https://github.com/SnowmanNunu/mask-cn

Composer 包名:snowmannunu/mask-cn

02

PART


项目结构

STRUCTURE · 目录布局

下面用一张目录树,帮你快速摸清这个项目的代码组织方式:

一个基于 PHP 语言的 mask-cn 中文数据脱敏库

03

PART


核心功能

核心功能

内置的脱敏类型非常贴合国内业务,基本覆盖日常能遇到的敏感字段:

•手机号、身份证、银行卡、邮箱

•中文姓名,且能识别复姓(如"欧阳娜娜" → "欧阳*娜")

•中国车牌(含新能源)

•统一社会信用代码、组织机构代码、旧版营业执照

•港澳台证件:港澳回乡证/居住证、台湾身份证/居住证、护照

•中文地址脱敏(到省级或市级)

最实用的两个能力:数组批量脱敏(一次性对一整条用户数据打码)和 auto 模式(在一段长文本或 JSON 里自动识别并脱敏手机号、身份证等,不用你手动指定字段)。此外还提供全局配置(统一设置掩码字符)、PSR-3 Logger 集成(日志落盘前自动脱敏),以及自定义脱敏规则注册。

04

PART


技术栈

TECH STACK · 技术选型

•语言:PHP 7.3+ / 8.0+ / 8.1+ / 8.2+ / 8.3+

•依赖扩展:ext-mbstring

•设计规范:实现 StrategyInterface,遵循 PSR-3 日志接口

•Laravel 集成:服务提供者通过 extra.laravel.providers 自动注册,并提供 Facade 与验证规则

05

PART


架构设计

架构设计

整体采用策略模式(Strategy),每个脱敏类型对应一个策略类并统一实现 StrategyInterface;通过 Mask 门面静态分发调用,自定义规则只需实现接口后用 Mask::register() 注册即可,扩展成本很低。auto 模式则在内置一组识别策略的基础上做文本扫描,按类型匹配后调用对应策略脱敏。

06

PART


快速开始

QUICK START · 快速上手

安装很简单,一个命令搞定:

一个基于 PHP 语言的 mask-cn 中文数据脱敏库(2)

用法直观得不像话,调用即脱敏,看前后对比最直观:

一个基于 PHP 语言的 mask-cn 中文数据脱敏库(3)

在 Laravel 里直接用 Facade 即可,无需任何额外配置:

一个基于 PHP 语言的 mask-cn 中文数据脱敏库(4)

07

PART


适用场景

适用场景

•用户列表、订单详情等接口返回前对敏感字段打码

•业务日志、报错信息里自动脱敏手机号/身份证,避免隐私泄漏

•数据导出、运营报表中对客户信息做掩码处理

•长文本、JSON 报文里批量扫描并脱敏(auto 模式)

•需要自定义脱敏规则或接入 Laravel 验证规则的团队

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论