mysql 数据脱敏
时间: 2023-10-29 08:00:53 浏览: 150
数据脱敏是一种常见的数据处理技术,用于在保护敏感隐私信息的同时,仍然能够使用和共享数据。在MySQL数据库中,可以使用字符串函数来实现数据脱敏。例如,可以使用LEFT、RIGHT和CONCAT函数来对手机号和身份证号进行脱敏处理。
对于电话号码脱敏,可以使用以下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
这些语句将显示脱敏前的电话号码和身份证号码,然后使用CONCAT函数将前三位字符保留不变,中间部分替换为星号,最后四位字符保留不变,从而实现了数据脱敏的效果。更多关于数据脱敏的详细信息,可以参考这篇文章:https://blog.csdn.net/eagle89/article/details/80309608
相关问题
mysql数据脱敏命令
以下是一些 MySQL 数据脱敏命令示例:
1. 使用 AES_ENCRYPT 和 AES_DECRYPT 函数对敏感数据进行加密和解密:
```
-- 加密
UPDATE table_name SET column_name = AES_ENCRYPT(column_name, 'encryption_key');
-- 解密
SELECT AES_DECRYPT(column_name, 'encryption_key') FROM table_name;
```
2. 使用 REPLACE 函数或正则表达式替换敏感数据:
```
-- 替换为 ****
UPDATE table_name SET column_name = '****' WHERE column_name LIKE '%sensitive_data%';
-- 替换为随机字符串
UPDATE table_name SET column_name = CONCAT('random_string_', FLOOR(RAND() * 1000)) WHERE column_name LIKE '%sensitive_data%';
```
3. 删除敏感数据:
```
DELETE FROM table_name WHERE column_name LIKE '%sensitive_data%';
```
4. 对于敏感数据只保留部分字符:
```
SELECT CONCAT(SUBSTRING(column_name, 1, 2), REPEAT('*', LENGTH(column_name) - 2)) FROM table_name;
```
5. 数据掩码:
```
-- 使用 SHA1 散列算法
UPDATE table_name SET column_name = SHA1(column_name) WHERE column_name LIKE '%sensitive_data%';
-- 使用 MD5 散列算法
UPDATE table_name SET column_name = MD5(column_name) WHERE column_name LIKE '%sensitive_data%';
```
需要根据具体情况选择合适的数据脱敏方法。同时,需要注意在进行数据脱敏时,要备份数据以防止错误操作导致数据丢失。
mysql数据库数据脱敏
MySQL数据库数据脱敏可以通过使用MySQL字符串函数来实现。以下是一些常用的MySQL字符串函数:
1. LEFT(str, len):返回字符串str左边的len个字符。
2. RIGHT(str, len):返回字符串str右边的len个字符。
3. SUBSTRING(str, pos, len):返回字符串str从pos位置开始的len个字符。
4. REPLACE(str, from_str, to_str):将字符串str中的from_str替换为to_str。
5. CONCAT(str1, str2, ...):将多个字符串拼接在一起。
通过使用这些函数,可以对敏感数据进行部分替换或隐藏。例如,可以使用以下语句将手机号码中间四位替换为*:
```mysql
SELECT CONCAT(LEFT(phone, 3), '****', RIGHT(phone, 4)) AS phone FROM users;
```
其中,phone为手机号码所在的列名,users为表名。这样,查询结果中的手机号码就会被部分替换为*。
阅读全文