java springBoot项目实现数据脱敏的策略

        在实际的软件开发中,保护用户隐私数据是非常重要的。在Java Spring Boot项目中,通常需要对敏感数据进行脱敏处理,以确保数据安全性。本文将介绍几种常见的数据脱敏策略,并提供相应的实现方式和示例代码。

        1、使用Hutool工具类进行处理。

示例代码:

import cn.hutool.core.util.StrUtil;public class User {private String idNumber;private String name;private String phone;@Overridepublic String toString() {return "User{" +"idNumber='" + StrUtil.hide(idNumber, 1, 4) + '\'' +", name='" + name + '\'' +", phone='" + StrUtil.hide(phone, 3, 7) + '\'' +'}';}
}

        在上面的代码中,我们在toString()方法中使用了Hutool的StrUtil工具类提供的hide()方法对身份证号码和手机号码进行了脱敏处理。其中,hide()方法的第一个参数是需要脱敏的字符串,第二个参数是脱敏开始的位置,第三个参数是脱敏结束的位置。 

        2、使用sql语句进行数据的脱敏。

示例代码:

-- CONCAT()、LEFT()和RIGHT()字符串函数组合使用,请看下面具体实现-- CONCAT(str1,str2,…):返回结果为连接参数产生的字符串
-- LEFT(str,len):返回从字符串str 开始的len 最左字符
-- RIGHT(str,len):从字符串str 开始,返回最右len 字符-- 电话号码脱敏sql:SELECT mobilePhone AS 脱敏前电话号码,CONCAT(LEFT(mobilePhone,3), '********' ) AS 脱敏后电话号码 FROM t_s_user-- 身份证号码脱敏sql:SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号 FROM t_s_user
        3、 使用git中的开源插件,进行数据脱敏

git参考地址:点击此处跳转

        数据脱敏插件,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则。

        4、使用mybatis-mate-sensitive-jackson包,进行数据脱敏

注意:这种方式对个人用户免费,商用收费。

官网快速入门地址:快速开始 | MyBatis-Plus

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

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

相关文章

Leetcode 2641. 二叉树的堂兄弟节点 II

本题为修改给定二叉树中结点的值,修改的规则为:将原来的值替换为该结点所有堂兄弟结点值的和。 其实我们可以延申一下题意,怎样去计算该结点所有堂兄弟结点值的和?其实只需要先计算每一层所有结点的和,再减掉其本身的…

如何做零售企业满意度调查

零售业满意度调研是一项至关重要的市场研究工作,它能够帮助企业深入了解消费者对零售店的整体印象、商品质量、服务质量等方面的评价。这种评价可以帮助企业了解自身的优势和不足,提高企业的市场竞争力。民安智库(第三方市场调研公司&#xf…

《学成在线》微服务实战项目实操笔记系列(P1~P62)【上】

《学成在线》项目实操笔记系列【上】,跟视频的每一P对应,全系列12万字,涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳,参考这篇,相信会带给你极大启发。同时也欢迎大家提问与讨论,我会尽力帮大家解…

nginx登录用户验证配置

我们的nginx端口一般都是对外开放的,所以有一定程度上有被别人扫描的风险,所以为了减少被扫描的风险,我们可以配置一个nginx的用户登录验证; 用户验证登录需要nginx的一个模块:ngx_http_auth_basic_module 我们使用…

进程间通信(4):消息队列

先进先出,保证信息的有序性。 函数:msgget(搭配ftok)、msgsnd、msgrcv、msgctl 实现流程: 1、创建消息队列IPC对象 msgget 2、通信(内置函数:msgsnd、msgrcv) 3、删除消息队列IPC对象 msgctl write.c /* * 文件名称&…

PyTorch 2.2 中文官方教程(八)

训练一个玛丽奥玩游戏的 RL 代理 原文:pytorch.org/tutorials/intermediate/mario_rl_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 注意 点击这里下载完整的示例代码 作者: 冯元松, Suraj Subramanian, 王浩, 郭宇章。 这个…

谈谈安全对抗的本质

前言 红队和蓝队的兄弟们都辛苦了,趁夜深人静的时候写了一点东西,算是一点心得与体会,谈谈安全对抗的本质,仅供大家参考。 今年的活动,笔者和去年一样,镇守公司,运筹帷幄之中,决胜千…

2/7 算法每日N题(二分+双指针)

第一题&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size() - 1;while(left < right){int mid (right - left) / 2 left;int num nums[mid];if (num target) {return mid;} else if (num >…

有道论文翻译接口,python版和lua版

论文翻译接口python版 import requests import hashlib from urllib.parse import quotedef get_md5(s,is_hexTrue):md5hashlib.md5()md5.update(s.encode())if is_hex:return md5.hexdigest()return md5.digest()def translate(source_url,from_en,tozh-CHS):params {from: f…

Google DeepMind最新研究,将视觉语言大模型作为强化学习的全新奖励来源

论文题目&#xff1a;Vision-Language Models as a Source of Rewards 论文链接&#xff1a;https://arxiv.org/abs/2312.09187 在大型语言模型&#xff08;LLM&#xff09;不断发展的进程中&#xff0c;强化学习扮演了重要的角色&#xff0c;ChatGPT就是在GPT-3.5的基础上经过…

python将word文件转换成pdf文件

要将word文件转换成pdf文件&#xff0c;可以使用Python的pywin32库结合Microsoft Office软件来实现。 方法一&#xff1a; import win32com.client as win32def word_to_pdf(input_file, output_file):word win32.gencache.EnsureDispatch(Word.Application)doc word.Docume…

上海泗博HART转ModbusTCP网关HME-635应用案例之组态王和超声波液位计通信

如今工业现场的应用也逐渐把现场的不同应用协议转换成以太网&#xff0c;以此来提升现场的通信速度和质量。Modbus TCP是工业以太网协议的一种&#xff0c;也是现场应用中最常使用的。本应用案例是基于Modbus TCP的组态王和基于HART的超声波液位计之间数据通讯的具体应用。 应用…

c#cad 创建-点(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 创建一个点的命令方法。代码的主要功能是在当前活动文档中创建一个点&#xff0c;并将其添加到模型空间块表记录中。 代码的主要步骤如下&#xff1a; 获取当前活动文档、数据库和编辑器对象。使用事务开始创建点的过程…

Java排序方法

在Java中&#xff0c;有多种排序方法可用&#xff0c;其中包括快速排序、归并排序、插入排序等等。Java标准库提供了对数组和集合进行排序的方法。下面是一些常用的Java排序方法的示例&#xff1a; 1. 使用Arrays类中的sort方法对数组进行排序&#xff08;快速排序&#xff09…

【Git版本控制 05】多人协作

目录 一、邀请开发用户 二、新建远程分支 三、拉取远程分支 四、推送远程分支 五、合并远程分支 六、多分支协作 一、邀请开发用户 在windows环境下&#xff0c;再clone同⼀个项⽬仓库&#xff0c;来模拟⼀起协作开发的另⼀名⼩伙伴。 际开发中&#xff0c;每个⽤⼾都有…

Redis持久化-fsync策略

在Redis中&#xff0c;fsync 策略用于控制何时将数据同步到磁盘上。这是持久化功能的一部分&#xff0c;它确保即使在发生意外关闭或崩溃时&#xff0c;Redis的数据也不会丢失。 有三种主要的 fsync 策略&#xff1a; no&#xff08;默认&#xff09;&#xff1a; Redis不会主…

vue的8大生命周期

第072个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使用&#xff0c;computed&a…

npm_config_xxx

// package.json{ "scripts": { "log": "node index.js", } }// index.js function logProcessEnv(key){ console.log(process.env[${key}], process.env[key]); } logProcessEnv(npm_config_foo); 问题&#xff1a; npm run log 和 yarn log…

sui move笔记

前言 一些疑问: sui 和move是什么关系&#xff1f; 基础 基本数据类型 Move 的基本数据类型包括: 整型 (u8, u32,u64, u128,u258)、布尔型 boolean 和地址 address。 Move 不支持字符串和浮点数。 _u8&#xff1a;代表8位无符号整数类型&#xff0c;范围是0~255。占用内存…

【Python】虚拟环境miniconda安装(python3.7, python3.x)

背景 使用Python开发项目时&#xff0c;我们一般都需要安装环境&#xff0c;可能是在物理机上直接安装&#xff0c;也可能是在虚拟环境上安装&#xff0c;当前是怎么按照conda环境的示例&#xff0c;可以指定安装Python3.x的所有版本。 安装 首先&#xff0c;需要登录当前的…