别再手写了!SpringBoot 6 种数据脱敏方案,第 5 种直接封神!

沉默是金,总会发光

大家好,我是沉默

在日常开发中,你一定遇到过这种需求:

手机号中间四位要打星
身份证号要隐藏中间
邮箱只能露前缀
银行卡只能看头尾

比如

手机号:13812345678 → 138****5678
身份证:430101199003078888 → 430101********8888
姓名:张三四 → 张*四
邮箱:12345678@qq.com → 1234****@qq.com
银行卡:6230351888852405 → 6230********2405

于是问题来了:

  • 写在 Controller?太乱

  • 写在 Service?污染业务

  • 写在 SQL?维护地狱

  • 写在 VO?嵌套一多就炸

这就是数据脱敏(Data Masking)

今天这篇文章,我直接把我在真实项目里用过的 6 种脱敏方案一次性讲清楚,Spring Boot 拿来就能用。

-01-

1-2

方案一|Hutool 工具库(懒人必备)

如果你不想造轮子,那就一句话:

直接用 Hutool

依赖

<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.0</version>
</dependency>

使用示例

String phone= DesensitizedUtil.mobilePhone("13812345678");
String idCard= DesensitizedUtil.idCardNum("430101199003078888", 6, 4);
String name= DesensitizedUtil.chineseName("张三四");
String email= DesensitizedUtil.email("12345678@qq.com");
String bankCard= DesensitizedUtil.bankCard("6230351888852405");

  • 开箱即用

  • 灵活性有限

  • 适合小项目 / 原型 / 快速交付

方案二|正则工具类(最直观)

不想引第三方?那就自己写工具类

思路很简单:
输入原值 → 正则替换 → 返回脱敏值

使用方式

user.setPhone(SensitiveUtil.maskPhone(user.getPhone()));
user.setIdCard(SensitiveUtil.maskIdCard(user.getIdCard()));

  • 好理解、好调试

  • 每个地方都要手动调

  • 字段少、结构简单的场景

-02-

3-4

方案三|注解 + Jackson(工程化第一步)

很多人做到这里会开始意识到一个问题:

“我不想每个接口都手动脱敏”

那就该用注解 + Jackson 序列化了。

思路:

在字段上标注
JSON 序列化时自动脱敏
业务代码 0 感知

@Sensitive(SensitiveType.PHONE)
private String phone;

优点很明显:

  • 统一出口

  • 性能好(只在序列化阶段)

  • 对嵌套对象无能为力

但是,真正的难题出现了。

痛点|嵌套对象脱敏,前面方案全失效

来看一个真实结构

public class User {
@Sensitive(SensitiveType.PHONE)
private String phone;

private UserDetail detail;
}

public class UserDetail {
@Sensitive(SensitiveType.ID_CARD)
private String idCard;
}

结果:

  • phone脱敏

  • detail.idCard明文

这在真实项目里,是事故级风险


-03-

5-6

方案五|AOP 深度脱敏(架构级推荐)

这才是中大型项目的正确解法

不是“在哪脱敏”,而是“统一在出口治理”

  • Controller / Service 返回值

  • 无论是:

    • 单对象

    • List

    • Map

    • Page

    • 多层嵌套

全部递归处理

核心流程图

请求 → Controller → ServiceAOP 环绕拦截递归扫描返回对象找到@Sensitive字段执行脱敏返回

效果

{
"name":"张*四",
"phone":"138****5678",
"detail":{
"emergencyPhone":"139****8765"
}
}

为什么我强烈推荐它?

  • 一次配置,全局生效

  • 支持任意嵌套

  • 业务代码零侵入

  • 后期统一治理

这已经是**“安全架构层”的方案**了。

方案六|MySQL 层脱敏(DB 视角)

这是完全不同的思路

在数据库层就不让你看到明文

SELECT
CONCAT(LEFT(phone,3),'****',RIGHT(phone,4)) AS phone
FROM users;

适合谁?

  • 报表系统

  • 只读账号

  • DBA 安全视图

  • 数据分析场景

-04-

总结

六种方案对比表

方案

优点

缺点

场景

Hutool

不灵活

小项目

工具类

简单

手动多

少量字段

Jackson

自动化

不支持深层

API 输出

Getter

轻量

重复代码

VO 控制

AOP 深度脱敏

⭐⭐⭐⭐⭐

实现复杂

中大型项目

MySQL

DB 安全

SQL 复杂

报表

最佳实践建议(面试 & 实战通吃)

  • 新手 / 小项目:方案一、二

  • 标准 REST API:方案三

  • 复杂对象 + 统一治理方案五(AOP)

  • 数据安全隔离:方案六(DB)

数据脱敏不是“字符串处理”,而是“安全架构设计”

当你的系统开始考虑:

  • 合规

  • 安全

  • 数据最小暴露原则

那你就已经不是在写 CRUD 了,而是在做工程设计

如果这篇文章对你有帮助,
欢迎点赞 / 收藏 / 转发

-05-

粉丝福利

我这里创建一个程序员成长&副业交流群,

和一群志同道合的小伙伴,一起聚焦自身发展

可以聊:

技术成长与职业规划,分享路线图、面试经验和效率工具,

探讨多种副业变现路径,从写作课程到私活接单,

主题活动、打卡挑战和项目组队,让志同道合的伙伴互帮互助、共同进步。

如果你对这个特别的群,感兴趣的,

可以加一下,微信通过后会拉你入群,

但是任何人在群里打任何广告,都会被我T掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1131252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业级IoT库房温湿度实时监测系统:从感知到管控的全链路方案

一、项目背景 在食品、药品、电子元件、仓储物流、文物馆藏等众多领域&#xff0c;库房内的温湿度环境是影响物资存储质量的关键因素。传统库房温湿度管理多采用人工定时巡检、纸质记录的方式&#xff0c;存在效率低下、误差大、实时性差、漏检误报等问题。一旦温湿度超出安全阈…

小白别踩坑:async-await真能保证顺序执行?搞懂调用时机才不翻

小白别踩坑&#xff1a;async-await真能保证顺序执行&#xff1f;搞懂调用时机才不翻 小白别踩坑&#xff1a;async-await真能保证顺序执行&#xff1f;搞懂调用时机才不翻车&#xff01;先整点废话——“我明明写了 await&#xff0c;怎么还是乱&#xff1f;”async 函数到底返…

spss 性别类似的二分类变量 多分类变量 做线性回归分析

在SPSS中&#xff0c;可以用性别作为自变量纳入线性回归模型&#xff0c;但需要先对性别这个分类变量进行适当的编码处理&#xff0c;因为线性回归要求自变量为数值型变量。 一、核心前提&#xff1a;性别变量的编码 性别是典型的二分类变量&#xff08;如男/女&#xff09;&am…

电商数据质量的智能监测

电商数据质量的智能监测 关键词:电商数据、数据质量、智能监测、数据清洗、数据校验 摘要:本文围绕电商数据质量的智能监测展开深入探讨。首先介绍了电商数据质量监测的背景、目的、预期读者等内容。接着阐述了核心概念,包括数据质量的各个维度以及智能监测的原理,并通过示…

多云架构下的Z-Image-Turbo:如何实现高可用图像生成服务

多云架构下的Z-Image-Turbo&#xff1a;如何实现高可用图像生成服务 在当今AI技术快速发展的时代&#xff0c;图像生成服务已成为许多应用场景的核心需求。Z-Image-Turbo作为阿里开源的高效图像生成模型&#xff0c;通过创新的8步蒸馏技术&#xff0c;能够在保持照片级质量的同…

2026年国产数据库客户成功案例与迁移成本综合对比分析

核心观点摘要2026年国产数据库市场持续增长&#xff0c;客户成功案例数量与迁移实践成为选型重要参考&#xff1b;不同国产数据库在金融、政务、互联网等行业的落地案例数量差异显著&#xff0c;客户选型需结合行业属性&#xff1b;数据库迁移成本受数据规模、兼容性、人力投入…

“补贴”能烧出未来吗?“排队免单”模式的价值与隐忧

当直接的打折促销已经无法撬动消费者的钱包时&#xff0c;一种名为“订单排队免单”的模式开始流行。“花出去的有可能全部回来”&#xff0c;其背后是一套精密的商业计算。一、核心玩法&#xff1a;一个虚构的“智能水站”案例为了让逻辑更清晰&#xff0c;我们假设一个完全简…

信息流广告点击率提升300%丨实战案例解析

信息流广告的点击率优化&#xff0c;确实是一个需要综合考量多个因素的精细活。下面是结合行业经验&#xff0c;梳理几个关键方向和具体策略。精准定向与用户洞察精准定向是基础。关键在于将广告推送给真正可能感兴趣的人&#xff0c;这依赖于对用户的深入理解。通过分析用户行…

跨平台创作无忧:Z-Image-Turbo云端服务+多终端访问方案

跨平台创作无忧&#xff1a;Z-Image-Turbo云端服务多终端访问方案 作为一名数字创作者&#xff0c;你是否经常需要在Windows工作室电脑、MacBook和iPad之间切换工作&#xff1f;每次换设备都要重新配置复杂的AI绘画环境&#xff0c;不仅浪费时间&#xff0c;还容易出错。本文将…

库卡机器人气保焊智能节气阀

库卡机器人凭借在气保焊领域的高效作业表现和精准轨迹控制&#xff0c;广泛应用于车架焊接、不锈钢容器加工、汽车零部件制造等场景。保护气消耗成本在气保焊工序中占比显著&#xff0c;其管控效果直接关系生产线的盈利空间。库卡机器人进行气保焊时&#xff0c;会依据工件特性…

背调软件:重塑企业招聘风控的高效工具

在数字化转型加速的当下&#xff0c;企业招聘流程正朝着智能化、高效化方向升级&#xff0c;背调软件作为招聘风控的核心工具&#xff0c;逐渐取代传统人工背调&#xff0c;成为企业筛选人才的重要助力。它不仅解决了传统背调流程繁琐、耗时久、信息准确率低的痛点&#xff0c;…

计算机等级考试CMMI考试高频考点速记表

核心模块考点内容修仙类比考试关键词 / 必背点CMMI 全称Capability Maturity Model Integration能力成熟度模型集成修仙界「门派修炼体系总纲」区分 CMM&#xff08;旧版软件模型&#xff09;与 CMMI&#xff08;集成版&#xff0c;覆盖软件、系统、服务三大领域&#xff09;两…

AI创作马拉松:从环境搭建到作品提交的全流程指南

AI创作马拉松&#xff1a;从环境搭建到作品提交的全流程指南 参加AI艺术生成赛道的编程马拉松&#xff0c;最让人头疼的莫过于环境配置。本文将带你从零开始&#xff0c;快速搭建一个稳定的AI创作环境&#xff0c;让你把宝贵的时间都用在创意实现上&#xff0c;而不是浪费在依赖…

智慧交通铁路巡检钢轨轨道裂纹检测数据集VOC+YOLO格式698张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;698标注数量(xml文件个数)&#xff1a;698标注数量(txt文件个数)&#xff1a;698标注类别数&…

想入FreeClip2的宝子注意啦,这样买超划算!

年底收到年终奖想买耳机的宝子们&#xff0c;先别急着下单&#xff01; 用支付宝喂鸡就能省一笔&#xff01;具体步骤可以看这里&#xff1a; - ①先打开支付宝搜“蚂蚁庄园”&#xff0c;用“杂货铺”多搜搜自己想买的耳机&#xff0c;比如主包我想买华为的FreeClip2&#xff…

CLIP 的双编码器架构是如何优化图文关联的?

引言多模态对齐与CLIP突破CLIP模型架构与技术实现

推荐一个「本地」开源平替版Manus:AiPy,不会跑路

三个月前还在闲鱼炒到万元邀请码的Manus&#xff0c;如今官网已显示「所在地区不可用」。 这个曾经让国内AI 发烧友圈为之疯狂的明星产品&#xff0c;因为合规问题不得不将重心转向海外。 创始人肖弘的一句话道出了些许无奈&#xff1a; 「想要在全球化的市场里做好产品&#…

钢管X射线图像缺陷识别分割数据集labelme格式3337张8类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数)&#xff1a;3337标注数量(json文件个数)&#xff1a;3337标注类别数&#xff1a;8标注类别名称:["air hole","air hole hollow",&qu…

Z-Image-Turbo模型监控:云端环境下的性能与资源使用分析

Z-Image-Turbo模型监控&#xff1a;云端环境下的性能与资源使用分析 作为一名DevOps工程师&#xff0c;当我第一次将Z-Image-Turbo部署到生产环境时&#xff0c;最让我头疼的就是如何有效监控这个AI模型的性能和资源使用情况。Z-Image-Turbo作为一款高性能图像生成模型&#xf…

导师不会说的论文秘密:9款AI工具实测,PaperTan交叉引文献超高效!

90%的学生都在用“笨办法”写论文&#xff0c;却不知道导师电脑里藏着这些能一键通关的“黑科技”。今天&#xff0c;就为你揭开学术圈心照不宣的效率密码。 当你对着空白的Word文档抓耳挠腮&#xff0c;当你在深夜与查重报告殊死搏斗&#xff0c;当你反复揣摩导师那句“再改改…