首先,我们需要定义一个字符串替换方法,该方法可以将指定的字符串替换为指定字符的重复串。代码实现如下:
public static string Mask(string text, char maskChar = '*', int startIndex = 3, int endIndex = -4)
{
if (string.IsNullOrEmpty(text))
{
return string.Empty;
}
int len = text.Length;
if (len < (startIndex - 1) + (-endIndex))
{
return text;
}
string maskString = new string(maskChar, len - ((startIndex - 1) + (-endIndex)));
StringBuilder result = new StringBuilder(text);
result.Remove(startIndex, len - ((startIndex - 1) + (-endIndex)));
result.Insert(startIndex, maskString);
return result.ToString();
}
其中,text
是要被替换的文本,maskChar
是替换的字符,startIndex
和endIndex
表示需要保留的字符串长度。
针对手机号码进行隐藏的示例代码:
string phoneNumber = "13800138000";
string maskedPhoneNumber = Mask(phoneNumber);
Console.WriteLine(maskedPhoneNumber); // 输出:138****8000
针对邮箱进行隐藏的示例代码:
string email = "someone@example.com";
int index = email.IndexOf("@");
string maskedEmail = Mask(email, maskChar: '*', startIndex: 2, endIndex: -(email.Length - index));
Console.WriteLine(maskedEmail); // 输出:so******@example.com
需要注意的是,这种方式只是简单的字符替换,即使被替换的字符串不是连续的数字或字母,替换后的字符串也会保留原有的字符个数。为了更加准确地隐藏敏感信息,可以根据具体情况采用正则表达式等方式进行更加精细的匹配和替换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#隐藏手机号、邮箱等敏感信息的实现方法 - Python技术站