由于一部分信息比较敏感,需要脱敏展示,通常脱敏是替换成‘*’ ,有一些比较复杂的脱敏方式
就需要进行一些处理,以下展示3种常见的脱敏场景。以sqlserver为例。
1.将身份证出生年月日脱敏
select concat(left(IdCardNo,6),'********',right(IdCardNo,4)) from [tablename]
2.将姓名按照A-Z字母序脱敏
select concat('姓名',(SELECT Char(65 + (Number - 1) % 26))) from [tablename]
3.如果数据超过了A-Z 26个字母,需要追加AA-AZ
select concat('姓名',Coalesce((SELECT Char(65 + (t.Number - 475255) / 456976 % 26) WHERE t.Number >= 475255), '')
+ Coalesce((SELECT Char(65 + (t.Number - 18279) / 17576 % 26) WHERE t.Number >= 18279), '')
+ Coalesce((SELECT Char(65 + (t.Number - 703) / 676 % 26) WHERE t.Number >= 703), '')
+ Coalesce((SELECT Char(65 + (t.Number - 27) / 26 % 26) WHERE t.Number >= 27), '')
+ (SELECT Char(65 + (t.Number - 1) % 26))
)
from [tablename] t
本文介绍了SQLserver中常见的三种数据脱敏方法,包括身份证出生年月日的脱敏、姓名的字母序脱敏以及复杂情况下的字母扩展脱敏策略。这些方法有助于保护敏感信息,确保数据安全。
3335






