中文本土场景敏感数据脱敏 PHP 库,内置手机号、身份证、银行卡、复姓姓名、车牌、统一社会信用代码等规则,支持长文本智能识别、数组批量脱敏、自定义策略与 Laravel 集成,开箱即用。
项目介绍
一个专门为中文本土场景设计的敏感数据脱敏库。做国内后端系统总有不能明文出现的数据——手机号、身份证、银行卡、车牌、统一社会信用代码,日志、接口返回、导出报表都要打码。mask-cn 把这些本土规则内置成策略:身份证兼容 15/18 位、姓名识别复姓、车牌考虑新能源格式,composer require snowmannunu/mask-cn 即可安装,PHP 7.3+ 至 8.3+ 全覆盖(需要 ext-mbstring)。
所有脱敏通过 Mask 类静态方法调用:
use MaskCn\Mask;
Mask::phone('13812345678'); // "138****5678"
Mask::idCard('110101199003078888'); // "110101********8888"
Mask::bankCard('6222021234567890123'); // "6222 *********** 0123"
Mask::name('欧阳娜娜'); // "欧阳*娜" ← 复姓识别
Mask::plate('京A12345'); // "京A***45"
Mask::address('广东省深圳市南山区科技园'); // "广东省深圳市******"Mask::array() 按字段名映射策略,一次处理整个用户数组StrategyInterface 注册后即可在 Mask::array() 映射中使用Config 类统一设置掩码字符和保留位数,方法级参数可覆盖MaskSensitiveLogger 包装器 + MaskProcessor 静态处理器,业务代码零改动MaskedField 验证规则约束提交数据$text = '我的电话是 13812345678,身份证是 110101199003078888,邮箱 foo@bar.com';
Mask::auto($text);
// "我的电话是 138****5678,身份证是 110101********8888,邮箱 f**@bar.com"MIT 协议开源,配套 PHPUnit 测试和 PHPStan 静态分析。