信息脱敏工具-DesensitizedUtil
# 简介
静态工具类 DesensitizedUtil,是一个信息脱敏工具类,提供了多个方法来对敏感信息进行脱敏处理,包括用户ID、中文姓名、身份证号、座机号、手机号、地址、电子邮件、密码、中国大陆车牌和银行卡号等常见敏感信息类型。每个方法都只保留信息的前几位和后几位,中间用星号代替,从而达到脱敏的效果。
在数据处理或清洗中,可能涉及到很多隐私信息的脱敏工作,因此EasyTool
针对常用的信息封装了一些脱敏方法。
现阶段支持的脱敏数据类型包括:
- 用户id
- 中文姓名
- 身份证号
- 座机号
- 手机号
- 地址
- 电子邮件
- 密码
- 中国大陆车牌,包含普通车辆、新能源车辆
- 银行卡
整体来说,所谓脱敏就是隐藏掉信息中的一部分关键信息,用*代替
# EasyTool.DesensitizedUtil 类
方法说明:
UserId(string userId)
: 对用户ID进行脱敏,只保留前两个字符和后两个字符。
ChineseName(string name)
: 对中文姓名进行脱敏,只保留第一个汉字和最后一个汉字,中间用星号代替。
Idcard(string idcard)
: 对身份证号进行脱敏,只保留前四个字符和后四个字符。
Tel(string tel)
: 对座机号码进行脱敏,只保留前三位和后四位。
Mobile(string mobile)
: 对手机号码进行脱敏,只保留前三位和后四位。
Address(string address)
: 对地址信息进行脱敏,只保留前五个字符和后三个字符。
Email(string email)
: 对电子邮件进行脱敏,只保留邮箱前缀的前三个字符和后两个字符。
Password(string password)
: 对密码进行脱敏,只保留前两个字符和后两个字符。
PlateNumber(string plateNumber)
: 对中国大陆车牌号进行脱敏,只保留前两个字符和最后一个字符。
Bankcard(string bankcard)
: 对银行卡号进行脱敏,只保留前四位和后四位。
# UserId-脱敏用户ID
/// <summary>
/// 脱敏用户ID,只保留前两位和后两位
/// </summary>
/// <param name="userId">用户ID</param>
/// <returns>脱敏后的用户ID</returns>
public static string UserId(string userId)
# ChineseName-脱敏中文姓名
/// <summary>
/// 脱敏中文姓名,只保留第一个汉字和最后一个汉字,其他用*代替
/// </summary>
/// <param name="name">中文姓名</param>
/// <returns>脱敏后的中文姓名</returns>
public static string ChineseName(string name)
# Idcard-脱敏身份证号码
/// <summary>
/// 脱敏身份证号码,只保留前两位和后四位
/// </summary>
/// <param name="idcard">身份证号码</param>
/// <returns>脱敏后的身份证号码</returns>
public static string Idcard(string idcard)
# Tel-脱敏座机号码
/// <summary>
/// 脱敏座机号码,只保留前三位和后四位
/// </summary>
/// <param name="tel">座机号码</param>
/// <returns>脱敏后的座机号码</returns>
public static string Tel(string tel)
# Mobile-脱敏手机号码
/// <summary>
/// 脱敏手机号码,只保留前三位和后四位
/// </summary>
/// <param name="mobile">手机号码</param>
/// <returns>脱敏后的手机号码</returns>
public static string Mobile(string mobile)
# Address-脱敏地址信息
/// <summary>
/// 脱敏地址信息,只保留前五个字符和后三个字符
/// </summary>
/// <param name="address">地址信息</param>
/// <returns>脱敏后的地址信息</returns>
public static string Address(string address)
# Email-脱敏电子邮件
/// <summary>
/// 脱敏电子邮件,只保留邮箱前缀的前三个字符和后两个字符
/// </summary>
/// <param name="email">电子邮件</param>
/// <returns>脱敏后的电子邮件</returns>
public static string Email(string email)
# Password-脱敏密码
/// <summary>
/// 脱敏密码,只保留前两个字符和后两个字符
/// </summary>
/// <param name="password">密码</param>
/// <returns>脱敏后的密码</returns>
public static string Password(string password)
# 脱敏中国大陆车牌号-PlateNumber
/// <summary>
/// 脱敏中国大陆车牌号,只保留前两个字符和最后一个字符
/// </summary>
/// <param name="plateNumber">车牌号</param>
/// <returns>脱敏后的车牌号</returns>
public static string PlateNumber(string plateNumber)
# Bankcard-脱敏银行卡号
/// <summary>
/// 脱敏银行卡号,只保留前四位和后四位
/// </summary>
/// <param name="bankcard">银行卡号</param>
/// <returns>脱敏后的银行卡号</returns>
public static string Bankcard(string bankcard)
# 代码示例
using System;
class Program
{
static void Main(string[] args)
{
// 用户ID
string userId = "100001";
Console.WriteLine($"原始用户ID:{userId}");
Console.WriteLine($"脱敏后用户ID:{DesensitizedUtil.DesensitizeUserId(userId)}");
// 中文姓名
string name = "张三";
Console.WriteLine($"原始中文姓名:{name}");
Console.WriteLine($"脱敏后中文姓名:{DesensitizedUtil.DesensitizeChineseName(name)}");
// 身份证号码
string idcard = "11010119800101001X";
Console.WriteLine($"原始身份证号码:{idcard}");
Console.WriteLine($"脱敏后身份证号码:{DesensitizedUtil.DesensitizeIdcard(idcard)}");
// 座机号码
string tel = "010-12345678";
Console.WriteLine($"原始座机号码:{tel}");
Console.WriteLine($"脱敏后座机号码:{DesensitizedUtil.DesensitizeTel(tel)}");
// 手机号码
string mobile = "13812345678";
Console.WriteLine($"原始手机号码:{mobile}");
Console.WriteLine($"脱敏后手机号码:{DesensitizedUtil.DesensitizeMobile(mobile)}");
// 地址
string address = "北京市朝阳区建国路1号";
Console.WriteLine($"原始地址:{address}");
Console.WriteLine($"脱敏后地址:{DesensitizedUtil.DesensitizeAddress(address)}");
// 电子邮件
string email = "test@example.com";
Console.WriteLine($"原始电子邮件:{email}");
Console.WriteLine($"脱敏后电子邮件:{DesensitizedUtil.DesensitizeEmail(email)}");
// 密码
string password = "123456";
Console.WriteLine($"原始密码:{password}");
Console.WriteLine($"脱敏后密码:{DesensitizedUtil.DesensitizePassword(password)}");
// 中国大陆车牌号
string plateNumber = "京A12345";
Console.WriteLine($"原始中国大陆车牌号:{plateNumber}");
Console.WriteLine($"脱敏后中国大陆车牌号:{DesensitizedUtil.DesensitizePlateNumber(plateNumber)}");
// 银行卡号
string bankcard = "622202******1234";
Console.WriteLine($"原始银行卡号:{bankcard}");
Console.WriteLine($"脱敏后银行卡号:{DesensitizedUtil.DesensitizeBankcard(bankcard)}");
}
}
# 输出结果
原始用户ID:100001
脱敏后用户ID:10****01
原始中文姓名:张三
脱敏后中文姓名:张*
原始身份证号码:11010119800101001X
脱敏后身份证号码:1101***********X
原始座机号码:010-12345678
脱敏后座机号码:010-****5678
原始手机号码:13812345678