学一招,利用MySQL函数实现数据脱敏

如何在 MySQL 中进行数据脱敏? 数据脱敏,也称为数据去标识化或数据匿名化,是指对敏感数据进行处理,使其在不泄露原始数据内容的情况下,仍能保持一定的可用性。数据脱敏的目的是保护敏感信息,防止数据泄露,同时满足业务需求对数据的使用要求。在 MySQL 中进行数据脱敏可以有效地保护敏感信息,防止数据泄露。可以使用函数、视图、存储过程等方法对敏感数据进行脱敏。在进行数据脱敏时,需要选择合适的脱敏方法,测试脱敏效果,记录脱敏过程,并定期更新脱敏方法。通过合理地进行数据脱敏,可以提高数据的安全性,满足合规要求,同时便于数据的共享和测试。 阅读详情

前言

大家好,我是麦洛,前几天项目中用到了姓名脱敏,要保留头和尾,中间填充不定数量的’*’。因为不熟悉相关函数,破费周折,今天总结一下,感觉有用的可以收藏一下就好

一 什么是数据脱敏?

数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。

img

二 姓名脱敏小案例

2.1 定长脱敏

所谓定长脱敏,就是替换的’*'的长度固定,效果如下图所示

SELECT
	CONCAT( LEFT ( real_name, 1 ), '*', RIGHT ( real_name, CHAR_LENGTH( real_name )- 2 ) ) AS username 
FROM
	sys_user;

2.2 非定长脱敏

所谓非定长脱敏,就是替换的’*'长度不定,要根据姓名实时变化;

方式一

SELECT
 rpad(
  substring(u.real_name, 1, 1),
  char_length(u.real_name),
  '*'
 )
FROM
 sys_user u;

方式二

SELECT
  CONCAT( LEFT ( real_name, 1 ),  repeat('*',CHAR_LENGTH( real_name )- 1)) AS username 
FROM
  sys_user;

三 函数释义

在上面的例子中,我们用到了部分函数,下面一起来学习一下,微信搜一搜"爱写Bug的麦洛"公众号关注我,一起努力写Bug

CONCAT()

CONCAT()函数需要一个或多个字符串参数,并将它们连接成一个字符串。

CONCAT(string1,string2, ... );

CONCAT()函数在连接之前将所有参数转换为字符串类型。如果任何参数为NULL,则CONCAT()函数返回NULL值。

mysql> SELECT CONCAT('MySQL','CONCAT');
+--------------------------+
| CONCAT('MySQL','CONCAT') |
+--------------------------+
| MySQLCONCAT              |
+--------------------------+
1 row in set

如果添加NULL值,则CONCAT函数将返回一个NULL值,如下所示:

mysql> SELECT CONCAT('MySQL',NULL,'CONCAT');
+-------------------------------+
| CONCAT('MySQL',NULL,'CONCAT') |
+-------------------------------+
| NULL                          |
+-------------------------------+
1 row in set

LEFT()

LEFT()函数是一个字符串函数,它返回具有指定长度的字符串的左边部分。

LEFT(str,length);

LEFT()函数接受两个参数:

  • str是要提取子字符串的字符串。
  • length是一个正整数,指定将从左边返回的字符数。

LEFT()函数返回str字符串中最左边的长度字符。如果str或length参数为NULL,则返回NULL值。

RIGHT()

该方法和left()刚好相反,用法一致,就不做赘述;

CHAR_LENGTH()

返回以字符来测量字符串str的长度。一个多字节字符算作一个字符。这意味着,对于包含五个两字节字符的字符串,那么 length() 返回10,而 CHAR_LENGTH() 返回5。

rpad()

RPAD(str,len,padstr)函数表示在字符串 str 的右侧使用 padstr 进行填充,直到长度为 len。例如:

SELECT RPAD(123, 6, '0') AS str1, RPAD(123, 2, '0') AS str1;
|str1  |str1|
----+----+
|123000|12  |

repeat()

返回字符串str重复count次后的字符串。如果count小于1,则返回一个空字符串。如果str或count为NULL,返回NULL。

mysql> SELECT REPEAT('MySQL', 3);+-----------------------------------------------------| MySQLMySQLMySQL                                     +-----------------------------------------------------

谢谢大家阅读,我们下回见

下面是我的私人微信号,如果你对文章有疑问或建议,抑或是交流技术,围观朋友圈,都可以添加我的微信哦!希望可以一起学习和成长~

在这里插入图片描述

MySQL人员信息脱敏 目录前言一、数据样例和处理要求二、脱敏处理1.分析2.整合为过程总结 前言 从正式环境倒库了人员数据到测试环境,需要把人员信息脱敏处理 一、数据样例和处理要求 示例:表test_user,english_name英文名,chinese_name中文名,full_name 全名{英文名(中文名)}例 peanut(花生) SELECT english_name,chinese_name,full_name FROM test_user WHERE id=1669; 处理要求: 1、中文名修改为姓某. 阅读详情

相关推荐

mysql数据脱敏处理方法

将生产环境数据导出至测试环境或别的环境中,需将手机号、银行卡账号、姓名、身份证号及一些业务中的敏感数据进行脱敏,在mysql中可以通过以下方法根据实际应用进行处理. DELIMITER $$ CREATE  FUNCTION `f_get_rand_number`(p_size int) RETURNS int(20)     COMMENT '取参数传入长度的随机数' BEGIN

tangaijun的博客 2万+

MySQL 脱敏函数

MySQL数据脱敏

qq_39657458的博客 4229

常用技术完成数据脱敏的设计方案

ActiveMQ和Redis的数据脱敏:对于消息队列(如ActiveMQ)和缓存数据库(如Redis)中存储的敏感数据,可以通过加密等方式进行脱敏处理,确保数据在传输和存储过程中的安全性。需要注意的是,数据脱敏涉及到敏感数据的处理和安全性,因此应根据具体的业务需求和法律法规进行合理设计。同时,确保对脱敏后的数据进行适当的加密和权限控制,以保护数据的安全性。请注意,上述仅提供了一些常见的方法和思路,具体的数据脱敏实现将依赖于你的业务需求和具体技术实现细节。是一个自定义的注解,用于标记需要进行数据脱敏的字段。

Mr顺 2332

MySQL - 数据脱敏:敏感数据保护的实现方案

数据脱敏(Data Masking)是指在保留数据格式和业务逻辑可用性的前提下,对敏感字段进行不可逆或可控的变形处理,使其无法还原原始值,从而降低数据泄露风险。✅核心目标“看得见,看不懂;用得上,拿不走。通过AOP 切面,在 Service 方法返回后,遍历返回对象并脱敏。一个开源的分布式数据库中间件,提供透明化数据分片、读写分离、数据脱敏能力。🔗(可正常访问)数据脱敏不是银弹,而是一套分层防御策略。没有绝对安全的系统,但通过“数据库视图 + 应用拦截 + 中间件治理 + 权限控制”

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

MySQL与数据安全:数据脱敏与隐私保护的神秘宝典

数据脱敏就像是一个魔法斗篷,让敏感数据在外人眼中变得模糊不清。隐私保护则像是一个坚固的盾牌,抵御着来自外界的各种威胁。首先,你需要了解哪些数据是敏感的,比如个人信息、财务信息等。

java专栏 789

MySQL 脱敏函数使用详解:保护数据隐私的关键手段

哈喽,各位小伙伴们,你们好呀,我是喵手。C站掘金腾讯云阿里云华为云51CTO;欢迎大家常来逛逛今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。三连即是对作者我写作道路上最好的鼓励与支持!

喵手的博客 1460

Mysql与Oceanbase数据脱敏比较

数据脱敏:在数据处理和数据存储过程中,通过一定的算法和技术,将敏感数据进行加工处理、模糊化或替换,使得数据无法识别或难以还原,从而达到保护数据安全、防止数据泄露的目的。相关参考资料:信用卡处理公司使用以下方式提供一套敏感数据服务,例如:每秒处理大量金融交易。存储大量与交易相关的数据。保护与交易相关的数据,并严格保护个人数据。处理客户对使用可逆交易的投诉或屏蔽部分数据。典型的事务可能包括许多类型的敏感事务信息,包括:信用卡号。交易类型和金额。商户类型。交易密码(用于确认交易合法性)。

weixin_49686192的博客 2241

SGM5860x高精度ADC驱动开发与SPI接口实战指南

本文详细介绍了SGM5860x高精度ADC芯片的驱动开发与SPI接口配置实战。内容涵盖芯片特性、SPI通信设置、寄存器映射、驱动初始化、数据采集处理、校准优化及调试技巧,帮助开发者快速掌握国产24位ADC的应用,提升工业测量项目的精度与稳定性。

vvv99的博客 713

Mysql实现数据脱敏

Mysql实现数据脱敏 一、数据脱敏解释 在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。那么什么是数据脱敏呢? 在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。 二、数据脱敏实现 数据脱敏实现可以从数据库查数据的时候进行处理,可以在查出数据后进行处理。在这里记录了MySQL数据库查询时处理,通过使用my

csdnlaiyanqi的博客 5408

基于单片机智能家居控制系统设计

*单片机设计介绍,基于单片机智能家居控制系统设计。

QQ2193276455的博客 1714

基于Matlab与Gurobi的园区微电网风光储协同规划:从独立运营到联合优化的建模实战

本文详细介绍了如何利用Matlab与Gurobi进行园区微电网的风光储协同规划建模实战。通过构建从独立运营到联合优化的数学模型,结合Yalmip工具箱,旨在解决源荷不匹配问题,实现储能系统的最优配置与运行,从而降低总供电成本并提升新能源利用率。

weixin_29053073的博客 140

MYSQL数据脱敏(电话号码,身份证等)

一、数据脱敏解释 在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。那么什么是数据脱敏呢? 在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。 二、数据脱敏实现 数据脱敏实现可以从数据库查数据的时候...

ourLang 3万+

【提示学习代码】CoOp代码详读

CoOp是对CLIP的改进工作,主要是对prompt进行学习从而不用来手动设置prompt。自定义CLIP模型:上述两个模块结合而成的CLIP。文本编码器,接收文本的输入,并输出相应的编码表示。将图像和文本进行编码并计算它们之间的相似性。permute后变成了(4,2,3)Prompt学习器,用于学习生成提示。

weixin_51293984的博客 5815

数据安全:通过Oracle的基本函数实现简单加密脱敏函数

注我们获得更多精彩作者 | 苏星开,云和恩墨南区交付技术顾问,曾服务过通信、能源生产、金融等行业客户,擅长 SQL 审核和优化,DataGuard 容灾等。 概述这里主要...

Enmotech的博客 2万+

一个AI Agent顶十个软件,toB赛道正在大洗牌

一个AI Agent顶十个软件,toB赛道正在大洗牌

ith321的博客 1330

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

冲击10w 1万+

如何在MySQL中实现数据脱敏?

在MySQL中实现数据脱敏可以通过多种方式来完成,这些方法包括但不限于使用内置函数、视图、存储过程以及应用层的数据处理等。数据脱敏的目的是为了保护敏感信息(如个人身份信息、财务数据等)不被未经授权的用户访问,同时又能在必要时提供足够的信息以满足业务需求。

Pmyx_wyh的博客 1128

第八篇 永磁同步电机控制-MTPA、MTPV

MTPA 的全称是 Maximum Torque Per Ampere,即 最大转矩电流比控制。核心思想:在输出特定转矩时,通过控制定子电流的幅值和相位(即d轴和q轴电流的分量),使得所需要的定子电流幅值最小。通俗理解:就是用“最省电”的方式产生所需要的力矩。就像开车时,找到一个最合适的油门和档位配合,使得在输出相同动力时,油耗最低。

深耕汽车电子:AUTOSAR、电机控制,助力数字汽车 1867

MySQL 对身份证号、手机号等敏感数据脱敏

在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。那么什么是数据脱敏呢?

蜗牛老师,专注编程领域 1万+

Spring AI Alibaba 项目源码学习(九)-其他继承BaseAgent

本文分析了Spring AI Alibaba Agent Framework中的A2aRemoteAgent实现,主要特点包括: 实现了Agent间的远程调用能力,支持分布式部署 核心组件包括AgentCard封装元数据、A2aNodeActionWithConfig处理调用逻辑、AgentCardProvider提供卡片管理 支持流式调用和状态共享机制 采用Builder模式构建Agent实例 通过指令传递实现Agent间通信 关键流程包括状态提取、请求构建、远程调用和状态更新四个步骤,形成Agent

819

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

MySQL 数据脱敏方式盘点

对于企业而言,数据脱敏可以在数据共享或测试时用于保护敏感数据(如信用卡,社保卡,地址等)。通过对敏感数据进行脱敏处理,组织可以最大限度地降低数据泄露和未经授权访问的风险,同时仍能够使用真实的开发,测试和分析目的所需的数据。有很多方法进行数据脱敏,比如遮挡,替换,洗牌和加密,等等,它们适用于不同场景。本文主要聚焦「遮挡」,用特定符号 (比如 X 或 ) 遮挡敏感数据,这种方法可以在脱敏的同时保持原有数据感观。

Bytebase的博客 932

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mysql数据脱敏

将生产环境数据导出至测试环境或别的环境中,需将手机号、银行卡账号、姓名、身份证号及一些业务中的敏感数据进行脱敏,在mysql中可以通过以下方法根据实际应用进行处理. DELIMITER $$ CREATE FUNCTION `f_get_rand_number`(p_size int) RETURNS int(20) COMMENT '取参数传入长度的随机数' BEGIN -- select f_get_rand_number(4) ; -- 1699 DECLARE v_rand_...

eagle89的专栏 2094

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL数据脱敏(Data masking plugin functions)

对于企业而言,数据脱敏可以在数据共享或测试时用于保护敏感数据(如信用卡,社保卡,地址等)。通过对敏感数据进行脱敏处理,组织可以最大限度地降低数据泄露和未经授权访问的风险,同时仍能够使用真实的开发,测试和分析目的所需的数据。有很多方法进行数据脱敏,比如遮挡,替换,洗牌和加密,等等,它们适用于不同场景。本文主要聚焦「遮挡」,用特定符号 (比如 X 或) 遮挡敏感数据,这种方法可以在脱敏的同时保持原有数据感观。

★【World Of Moshow 郑锴】★ 2376

如何在MySQL中进行数据脱敏?

创建可复用的脱敏逻辑。BEGIN-- 长度不足时不脱敏END IF;使用函数SELECTFROM users;

weixin_50808694的博客 675

MySQL数据库脱敏实战指南:从原理到企业级实现

MySQL数据库脱敏实战指南:从原理到企业级实现

huanhuanzhou blog 903
上一篇: 如何优雅地关闭SpringBoot应用程序?听我给你讲
下一篇: 浅谈MySQL中的游标
爱写Bug的麦洛
博客等级 码龄11年 1万+粉丝 201原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值