激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#隱藏手機號、郵箱等敏感信息的實現方法

C#隱藏手機號、郵箱等敏感信息的實現方法

2021-12-06 15:02WeihanLi C#

這篇文章主要介紹了C#隱藏手機號、郵箱等敏感信息的實現方法的相關資料,需要的朋友可以參考下

intro

做項目的時候,頁面上有一些敏感信息,需要用“*”隱藏一些比較重要的信息,于是打算寫一個通用的方法。

let's do it !

method 1:指定左右字符數量

method 1.1 中間的*的個數和實際長度有關

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/// <summary>
/// 隱藏敏感信息
/// </summary>
/// <param name="info">信息實體</param>
/// <param name="left">左邊保留的字符數</param>
/// <param name="right">右邊保留的字符數</param>
/// <param name="basedonleft">當長度異常時,是否顯示左邊
/// <code>true</code>顯示左邊,<code>false</code>顯示右邊
/// </param>
/// <returns></returns>
public static string hidesensitiveinfo(string info, int left, int right, bool basedonleft=true)
{
if (string.isnullorempty(info))
{
return "";
}
stringbuilder sbtext = new stringbuilder();
int hiddencharcount = info.length - left - right;
if (hiddencharcount > 0)
{
string prefix = info.substring(0, left), suffix = info.substring(info.length - right);
sbtext.append(prefix);
for (int i = 0; i < hiddencharcount; i++)
{
sbtext.append("*");
}
sbtext.append(suffix);
}
else
{
if (basedonleft)
{
if (info.length > left && left > 0)
{
sbtext.append(info.substring(0, left) + "****");
}
else
{
sbtext.append(info.substring(0, 1) + "****");
}
}
else
{
if (info.length > right && right > 0)
{
sbtext.append("****" + info.substring(info.length - right));
}
else
{
sbtext.append("****" + info.substring(info.length - 1));
}
}
}
return sbtext.tostring();
}

method 1.2 : 中間的*的個數固定

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/// <summary>
/// 隱藏敏感信息
/// </summary>
/// <param name="info">信息實體</param>
/// <param name="left">左邊保留的字符數</param>
/// <param name="right">右邊保留的字符數</param>
/// <param name="basedonleft">當長度異常時,是否顯示左邊
/// <code>true</code>顯示左邊,<code>false</code>顯示右邊
/// <returns></returns>
public static string hidesensitiveinfo1(string info, int left, int right, bool basedonleft = true)
{
if (string.isnullorempty(info))
{
return "";
}
stringbuilder sbtext = new stringbuilder();
int hiddencharcount = info.length - left - right;
if (hiddencharcount > 0)
{
string prefix = info.substring(0, left), suffix = info.substring(info.length - right);
sbtext.append(prefix);
sbtext.append("****");
sbtext.append(suffix);
}
else
{
if (basedonleft)
{
if (info.length > left && left >0)
{
sbtext.append(info.substring(0, left) + "****");
}
else
{
sbtext.append(info.substring(0, 1) + "****");
}
}
else
{
if (info.length > right && right>0)
{
sbtext.append("****" + info.substring(info.length - right));
}
else
{
sbtext.append("****" + info.substring(info.length - 1));
}
}
}
return sbtext.tostring();
}

method 2 : “*”數量一定,設置為4個,按信息總長度的比例來取,默認左右各取1/3

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/// <summary>
/// 隱藏敏感信息
/// </summary>
/// <param name="info">信息</param>
/// <param name="sublen">信息總長與左子串(或右子串)的比例</param>
/// <param name="basedonleft">當長度異常時,是否顯示左邊,默認true,默認顯示左邊
/// <code>true</code>顯示左邊,<code>false</code>顯示右邊
/// <returns></returns>
public static string hidesensitiveinfo(string info,int sublen = 3,bool basedonleft = true)
{
if (string.isnullorempty(info))
{
return "";
}
if (sublen<=1)
{
sublen = 3;
}
int sublength = info.length / sublen;
if (sublength > 0 && info.length > (sublength*2) )
{
string prefix = info.substring(0, sublength), suffix = info.substring(info.length - sublength);
return prefix + "****" + suffix;
}
else
{
if (basedonleft)
{
string prefix = sublength > 0 ? info.substring(0, sublength) : info.substring(0, 1);
return prefix + "****";
}
else
{
string suffix = sublength > 0 ? info.substring(info.length-sublength) : info.substring(info.length-1);
return "****"+suffix;
}
}
}

擴展

手機號 1

?
1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// 隱藏手機號詳情
/// </summary>
/// <param name="phone">手機號</param>
/// <param name="left">左邊保留字符數</param>
/// <param name="right">右邊保留字符數</param>
/// <returns></returns>
public static string hideteldetails(string phone, int left = 3, int right = 4)
{
return hidesensitiveinfo(phone, left, right);
}

測試結果如下:

C#隱藏手機號、郵箱等敏感信息的實現方法

手機號 2

?
1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// 隱藏手機號詳情
/// </summary>
/// <param name="phone">手機號</param>
/// <param name="left">左邊保留字符數</param>
/// <param name="right">右邊保留字符數</param>
/// <returns></returns>
public static string hideteldetails(string phone, int left = 3, int right = 4)
{
return hidesensitiveinfo1(phone, left, right);
}

測試結果如下:

C#隱藏手機號、郵箱等敏感信息的實現方法

郵件地址

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/// <summary>
/// 隱藏右鍵詳情
/// </summary>
/// <param name="email">郵件地址</param>
/// <param name="left">郵件頭保留字符個數,默認值設置為3</param>
/// <returns></returns>
public static string hideemaildetails(string email, int left = 3)
{
if (string.isnullorempty(email))
{
return "";
}
if (system.text.regularexpressions.regex.ismatch(email, @"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"))//如果是郵件地址
{
int suffixlen =email.length - email.lastindexof('@');
return hidesensitiveinfo(email, left, suffixlen,false);
}
else
{
return hidesensitiveinfo(email);
}
}

測試結果如下:

C#隱藏手機號、郵箱等敏感信息的實現方法

以上所述是小編給大家介紹的c#隱藏手機號、郵箱等敏感信息的實現方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的,在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/ben121011/archive/2016/09/14/hideSensitiveInfoViaCSharp.html

延伸 · 閱讀

精彩推薦
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
主站蜘蛛池模板: 日韩做爰视频免费 | 欧美日韩免费一区二区三区 | xvideos korean| 竹内纱里奈和大战黑人 | 羞羞视频免费网站入口 | 一边吃奶一边摸下娇喘 | 精品在线视频播放 | 国产一区二区三区影视 | 污视频在线免费播放 | 日本a∨精品中文字幕在线 被啪羞羞视频在线观看 | 国产91丝袜在线播放 | 激情欧美在线 | 免费人成在线观看网站 | 一级毛片免费版 | 久久久久在线观看 | 亚洲看片网 | 日韩毛片网站 | 日本高清无遮挡 | 国产日韩在线视频 | 久久亚洲精品视频 | 久久最新网址 | 91精品播放 | 久久一级 | 中文字幕在线一 | 亚洲国产精品一区二区三区 | 欧美久久久一区二区三区 | 99re热视频这里只精品 | 久久久久久久久久一本门道91 | 亚洲免费网站 | 国产欧美日韩视频在线观看 | 爱爱视频天天干 | 国产自在自线午夜精品视频在 | 国产精品久久999 | 九九精品在线播放 | 免费观看视频在线观看 | 日本一区二区在线 | 欧美视频一区二区三区 | 56av国产精品久久久久久久 | 久久不射电影网 | 一区二区三区四区视频在线观看 | 国产亚洲精品成人 |