手机号脱敏处理_C#简单代码实现对手机号邮箱等隐私信息进行*号打码
生活随笔
收集整理的這篇文章主要介紹了
手机号脱敏处理_C#简单代码实现对手机号邮箱等隐私信息进行*号打码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個系統的安全設計總是會注重用戶的隱私保護的,開發中也不乏能遇到這樣的需求,將電話號碼,QQ號,郵箱之類的敏感信息進行脫敏處理,呈現基本信息的同時并保護用戶隱私。比如13123456789這樣的手機號,通常展示為131****6789。
當然,如果只是手機號這種固定位數的實現起來也算是相當簡單的,但QQ號、微信號這種長度不固定的,我們需要做一個通用的脫敏處理。
比如:
1@masuit.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 name="s">字符串</param>/// <param name="mask">掩碼符</param>/// <returns></returns>public 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總結
以上是生活随笔為你收集整理的手机号脱敏处理_C#简单代码实现对手机号邮箱等隐私信息进行*号打码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾达a9设置(2022.9更新)
- 下一篇: android shape 按钮背景_A