數據脫敏,此處以姓名、身份證為例
/// <summary>
/// 姓名敏感處理
/// </summary>
/// <param name="fullName">姓名</param>
/// <returns>脫敏后的姓名</returns>
public string SetSensitiveName(string fullName)
{
if (string.IsNullOrEmpty(fullName)) return string.Empty;
string familyName = fullName.Substring(0, 1);
string end = fullName.Substring(fullName.Length - 1, 1);
string name = string.Empty;
//長度為2
if (fullName.Length <= 2) name = familyName + "*";
//長度大於2
else if (fullName.Length >= 3)
{
name = familyName.PadRight(fullName.Length - 1, '*') + end;
}
return name;
}
/// <summary>
/// 身份證脫敏
/// </summary>
/// <param name="idCardNo">身份證號</param>
/// <returns>脫敏后的身份證號</returns>
private string SetSensitiveIdCardNo(string idCardNo)
{
if (string.IsNullOrEmpty(idCardNo)
|| (idCardNo.Length != 15 && idCardNo.Length != 18)) return idCardNo;
string begin = idCardNo.Substring(0, 6);
string middle = idCardNo.Substring(6, 8);
string end = idCardNo.Substring(14, idCardNo.Length - 14);
string card = string.Empty;
card = begin + "********" + end;
return card;
}
測試:
string no = SetSensitiveIdCardNo("610253199804230067");
//string no = SetSensitiveIdCardNo("610253199804230");
string name = SetSensitiveName("齊天大聖孫悟空");
MessageBox.Show("idcardno==" + no + "\r\nname==" + name);

