星空网 > 软件开发 > ASP.net

隐藏手机号、邮箱等敏感信息

隐藏手机号、邮箱等敏感信息

Intro

做项目的时候,页面上有一些敏感信息,需要用“*”隐藏一些比较重要的信息,于是打算写一个通用的方法。

Let's do it !

Method 1:指定左右字符数量

Method 1.1 中间的*的个数和实际长度有关

 1   /// <summary> 2   /// 隐藏敏感信息 3   /// </summary> 4   /// <param name="info">信息实体</param> 5   /// <param name="left">左边保留的字符数</param> 6   /// <param name="right">右边保留的字符数</param> 7   /// <param name="basedOnLeft">当长度异常时,是否显示左边  8   /// <code>true</code>显示左边,<code>false</code>显示右边 9   /// </param>10   /// <returns></returns>11   public static string HideSensitiveInfo(string info, int left, int right, bool basedOnLeft=true)12   {13     if (String.IsNullOrEmpty(info))14     {15       return "";16     }17     StringBuilder sbText = new StringBuilder();18     int hiddenCharCount = info.Length - left - right;19     if (hiddenCharCount > 0)20     {21       string prefix = info.Substring(0, left), suffix = info.Substring(info.Length - right);22       sbText.Append(prefix);23       for (int i = 0; i < hiddenCharCount; i++)24       {25         sbText.Append("*");26       }27       sbText.Append(suffix);28     }29     else30     {31       if (basedOnLeft)32       {33         if (info.Length > left && left > 0)34         {35           sbText.Append(info.Substring(0, left) + "****");36         }37         else38         {39           sbText.Append(info.Substring(0, 1) + "****");40         }41       }42       else43       {44         if (info.Length > right && right > 0)45         {46           sbText.Append("****" + info.Substring(info.Length - right));47         }48         else49         {50           sbText.Append("****" + info.Substring(info.Length - 1));51         }52       }53     }54     return sbText.ToString();55   }

 

Method 1.2 : 中间的*的个数固定

 1   /// <summary> 2   /// 隐藏敏感信息 3   /// </summary> 4   /// <param name="info">信息实体</param> 5   /// <param name="left">左边保留的字符数</param> 6   /// <param name="right">右边保留的字符数</param> 7   /// <param name="basedOnLeft">当长度异常时,是否显示左边  8   /// <code>true</code>显示左边,<code>false</code>显示右边 9   /// <returns></returns>10   public static string HideSensitiveInfo1(string info, int left, int right, bool basedOnLeft = true)11   {12     if (String.IsNullOrEmpty(info))13     {14       return "";15     }16     StringBuilder sbText = new StringBuilder();17     int hiddenCharCount = info.Length - left - right;18     if (hiddenCharCount > 0)19     {20       string prefix = info.Substring(0, left), suffix = info.Substring(info.Length - right);21       sbText.Append(prefix);22       sbText.Append("****");23       sbText.Append(suffix);24     }25     else26     {27       if (basedOnLeft)28       {29         if (info.Length > left && left >0)30         {31           sbText.Append(info.Substring(0, left) + "****");32         }33         else34         {35           sbText.Append(info.Substring(0, 1) + "****");36         }37       }38       else39       {40         if (info.Length > right && right>0)41         {42           sbText.Append("****" + info.Substring(info.Length - right));43         }44         else45         {46           sbText.Append("****" + info.Substring(info.Length - 1));47         }48       }49     }50     return sbText.ToString();51   }

 

Method 2 : “*”数量一定,设置为4个,按信息总长度的比例来取,默认左右各取1/3

 1   /// <summary> 2   /// 隐藏敏感信息 3   /// </summary> 4   /// <param name="info">信息</param> 5   /// <param name="sublen">信息总长与左子串(或右子串)的比例</param> 6   /// <param name="basedOnLeft">当长度异常时,是否显示左边,默认true,默认显示左边 7   /// <code>true</code>显示左边,<code>false</code>显示右边 8   /// <returns></returns> 9   public static string HideSensitiveInfo(string info,int sublen = 3,bool basedOnLeft = true)10   {11     if (String.IsNullOrEmpty(info))12     {13       return "";14     }15     if (sublen<=1)16     {17       sublen = 3;18     }19     int subLength = info.Length / sublen;20     if (subLength > 0 && info.Length > (subLength*2) )21     {22       string prefix = info.Substring(0, subLength), suffix = info.Substring(info.Length - subLength);23       return prefix + "****" + suffix;24     }25     else26     {27       if (basedOnLeft)28       {29         string prefix = subLength > 0 ? info.Substring(0, subLength) : info.Substring(0, 1);30         return prefix + "****";31       }32       else33       {34         string suffix = subLength > 0 ? info.Substring(info.Length-subLength) : info.Substring(info.Length-1);35         return "****"+suffix;36       }37     }38   }

扩展

手机号 1

 1   /// <summary> 2   /// 隐藏手机号详情 3   /// </summary> 4   /// <param name="phone">手机号</param> 5   /// <param name="left">左边保留字符数</param> 6   /// <param name="right">右边保留字符数</param> 7   /// <returns></returns> 8   public static string HideTelDetails(string phone, int left = 3, int right = 4) 9   {10     return HideSensitiveInfo(phone, left, right);11   }

 

测试结果如下:

隐藏手机号、邮箱等敏感信息

 

手机号 2

 1   /// <summary> 2   /// 隐藏手机号详情 3   /// </summary> 4   /// <param name="phone">手机号</param> 5   /// <param name="left">左边保留字符数</param> 6   /// <param name="right">右边保留字符数</param> 7   /// <returns></returns> 8   public static string HideTelDetails(string phone, int left = 3, int right = 4) 9   {10     return HideSensitiveInfo1(phone, left, right);11   }

 

测试结果如下:

隐藏手机号、邮箱等敏感信息

 

邮件地址

 1   /// <summary> 2   /// 隐藏右键详情 3   /// </summary> 4   /// <param name="email">邮件地址</param> 5   /// <param name="left">邮件头保留字符个数,默认值设置为3</param> 6   /// <returns></returns> 7   public static string HideEmailDetails(string email, int left = 3) 8   { 9     if (String.IsNullOrEmpty(email))10     {11       return "";12     }13     if (System.Text.RegularExpressions.Regex.IsMatch(email, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))//如果是邮件地址14     {15       int suffixLen =email.Length - email.LastIndexOf('@');16       return HideSensitiveInfo(email, left, suffixLen,false);17     }18     else19     {20       return HideSensitiveInfo(email);21     }22   }

 

测试结果如下:

隐藏手机号、邮箱等敏感信息

 




原标题:隐藏手机号、邮箱等敏感信息

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

业绩暴跌!跨境电商进入高风险期,卖家注意存货风险巨坑……:https://www.ikjzd.com/articles/129483
1个季度赚2亿!厦门居然有这样低调的跨境大卖:https://www.ikjzd.com/articles/129484
跨境电商引流之YouTube网红营销最强干货:https://www.ikjzd.com/articles/129485
Listing本土化:卖家精灵教你如何找到产品的多种同义词:https://www.ikjzd.com/articles/129486
亚马逊关键词研究有哪些常见和另类的套路和玩法?:https://www.ikjzd.com/articles/129487
涉嫌欺诈?!多名亚马逊头部买家被查:https://www.ikjzd.com/articles/129488
宠物梳专利查询分析:https://www.kjdsnews.com/a/1842293.html
温州旧货市场有玻璃柜卖吗?:https://www.vstour.cn/a/411246.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流