5

C#简单代码实现对手机号邮箱等隐私信息进行*号打码

 3 years ago
source link: https://masuit.com/1790
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
C#简单代码实现对手机号邮箱等隐私信息进行*号打码_懒得勤快的博客_互联网分享精神
  1. 首页
  2. 文章列表
  3. C#简单代码实现对手机号邮箱等隐私信息进行*号打码

一个系统的安全设计总是会注重用户的隐私保护的,开发中也不乏能遇到这样的需求,将电话号码,QQ号,邮箱之类的敏感信息进行脱敏处理,呈现基本信息的同时并保护用户隐私。比如13123456789这样的手机号,通常展示为131****6789。

当然,如果只是手机号这种固定位数的实现起来也算是相当简单的,但QQ号、微信号这种长度不固定的,我们需要做一个通用的脱敏处理。

[email protected]这种用户名只有1位的邮箱,想要脱敏,应该是1****@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
{
>= 11 => Regex.Replace(s, "(.{3}).*(.{4})", $"$1{masks}$2"),
10 => Regex.Replace(s, "(.{3}).*(.{3})", $"$1{masks}$2"),
9 => Regex.Replace(s, "(.{2}).*(.{3})", $"$1{masks}$2"),
8 => Regex.Replace(s, "(.{2}).*(.{2})", $"$1{masks}$2"),
7 => Regex.Replace(s, "(.{1}).*(.{2})", $"$1{masks}$2"),
6 => Regex.Replace(s, "(.{1}).*(.{1})", $"$1{masks}$2"),
_ => Regex.Replace(s, "(.{1}).*", $"$1{masks}")
};
}

文章历史版本:

修改次数:2 次 查看历史版本

版权声明:

本文仅用于学习、研究和交流目的,欢迎非商业性质转载。本文链接:https://masuit.com/1790

● 下载遇到问题,请先阅读网站公告!如遇资源报毒,请参阅:https://ldqk.org/misc/14

● 文章内容仅供参考,所涉及的软件以具体使用情况为准!

● 博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。

● 博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。

● 博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章,请原谅博主成为一个无耻的文档搬运工!

● 文章内容部分来源于互联网,本站不代表任何立场;涉及到的软件来源于互联网,仅供个人学习参考,请勿用于商业用途,版权归软件开发者所有,下载后请务必于24小时内删除,请支持正版!因下载本站任何资源造成的损失,全部责任由使用者本人承担!如果你是版权方,认为本文内容对您的权益有所侵犯,请联系本站管理员,并参照侵删联系的说明提交相应的证明材料,本站将进行严格地资质审查和背景调查后,情况属实的将在三天内对本文删除或修正。本站对互联网版权绝对支持!

● 本站一贯非常高度重视知识产权保护并遵守各项知识产权法律、法规和具有约束力的规范性文件。重视正版,打击盗版。根据法律、法规和规范性文件要求,本站旨在保护权利人的合法权益的措施和步骤,当权利人发现在本站生成的链接所指向的第三方网页的内容侵犯其合法权益时,权利人应事先向本站发出"权利通知",本站将根据当地法律法规和政府规范性文件采取措施移除相关内容或链接。 

● 访问本站的用户必须明白,本站对提供下载的第三方软件不拥有任何权利,其版权归该资源的合法拥有者所有。

● 本站保证站内提供的所有可下载资源(软件等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。不论何种情形我们都不对任何由于使用或无法使用本站提供的信息所造成的直接的、间接的、附带的、特殊的或余波所及的损失、灵失、债务或中断负任何责任﹝不论是可预见或是不可预见的,即使我们巳被告知这种可能性﹞。

我已阅读《评论须知》
  • 1# 野火 | 2020-10-08 10:11:52 Windows 10.0 64位 | Chrome 85.0.4183.121
    学习了 (1)
昵称:
邮箱:
我已阅读《评论须知》

切换网站语言:简体中文 / 正體中文;联系站长:GitHub | Telegram | Telegram群组 | 电子邮箱 | 商务合作免责声明 | DMCA | 隐私政策

新日暮里娼片公司™旗下网站,本站由 .NET 5.0 强力驱动!本站源代码:github | Copyright@懒得勤快 保留所有权利 | Powered&Developed by 懒得勤快;

法务支持与联系:[email protected] | Hosting by Sia Nano IT in Latvia Riga,受当地法律保护!

Ping:150ms

网站公告:关于镜像站的说明

近日本站发现网络上存在与本站所有内容完全相同的网站存在,无疑是本站的镜像站,虽然也很感谢这类镜像站的建立帮助本站进行分流,但还是鉴于此,本站需要说明:镜像站内容与本站无任何关联,也可能存在其他钓鱼或篡改的可能性,内容的准确性也无法保证,由于本站程序开源共享,其他人也有可能利用本站的开源程序搭建站点或做二次开发,所以本站尚未正式公示过的其他域名内容相同的均为假冒站点或爬虫镜像站点或高仿站,请各位网友注意甄别,谨慎使用镜像站!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK