好用的网站开发编辑器,哪些网站可以做相册视频,嘉兴网站制作计划,凡科网app下载一个系统的安全设计总是会注重用户的隐私保护的#xff0c;开发中也不乏能遇到这样的需求#xff0c;将电话号码#xff0c;QQ号#xff0c;邮箱之类的敏感信息进行脱敏处理#xff0c;呈现基本信息的同时并保护用户隐私。比如13123456789这样的手机号#xff0c;通常展示… 一个系统的安全设计总是会注重用户的隐私保护的开发中也不乏能遇到这样的需求将电话号码QQ号邮箱之类的敏感信息进行脱敏处理呈现基本信息的同时并保护用户隐私。比如13123456789这样的手机号通常展示为131****6789。 当然如果只是手机号这种固定位数的实现起来也算是相当简单的但QQ号、微信号这种长度不固定的我们需要做一个通用的脱敏处理。 比如 1masuit.com这种用户名只有1位的邮箱想要脱敏应该是1****http://masuit.com吧 ldqk脱敏后应该是l**** 1234567脱敏后应该是1****67 所以我们应该针对不同的位数做处理简单分析得出以下几种不同的情况 只有1-5位的时候补全到5位 6-10位替换中间4位 11位以上缩减到11位并替换中间4位 替换我们可以直接使用正则表达式进行替换脱敏我们先实现11位手机号的脱敏 Regex.Replace(s, (.{3}).*(.{4}), $1****$2)但有时候我们想使用?进行脱敏所以打码字符应该通过参数的方式进行传递故我们需要从外部传递脱敏符号并根据不同情况作相应的正则替换封装代码如下 /// summary/// 字符串掩码/// /summary/// param names字符串/param/// param namemask掩码符/param/// returns/returnspublic static string Mask(this string s, char mask *){if (string.IsNullOrWhiteSpace(s?.Trim())){return s;}s s.Trim();string masks mask.ToString().PadLeft(4, mask);return s.Length switch{_ when s.Length 11 Regex.Replace(s, (.{3}).*(.{4}), $$1{masks}$2),_ when s.Length 10 Regex.Replace(s, (.{3}).*(.{3}), $$1{masks}$2),_ when s.Length 9 Regex.Replace(s, (.{2}).*(.{3}), $$1{masks}$2),_ when s.Length 8 Regex.Replace(s, (.{2}).*(.{2}), $$1{masks}$2),_ when s.Length 7 Regex.Replace(s, (.{1}).*(.{2}), $$1{masks}$2),_ when s.Length 6 Regex.Replace(s, (.{1}).*(.{1}), $$1{masks}$2),_ Regex.Replace(s, (.{1}).*, $$1{masks})};}转自原文 C#简单代码实现对手机号邮箱等隐私信息进行*号打码_懒得勤快的博客_互联网分享精神masuit.com