手机号脱敏处理_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#简单代码实现对手机号邮箱等隐私信息进行*号打码相关推荐
- 还愁不能解密MD5值?简单代码就能实现md5加密解密,内附源码,亲测可用
众所周知,md5本身是不可逆的,但我们可以使用以下代码中提供的接口进行解密啊!我试了下成功率是非常的高!8位以内的纯数字的md5值都可以解密. php代码 <?php $MiWen = &quo ...
- java手机号判断运营商_用Java对手机号所属运营商进行判断
[要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段, 故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134.1 package com.yuni ...
- 使用Python对手机号进行加密,超级简单
简单的用Python对手机号进行加密 知识点: 文件读写 基础语法 字符串处理 正则表达式 代码部分 # 导入系统包 import platform import reprint("Hell ...
- Java实现对手机号、身份证号、护照号脱敏
目录 1.Java原生代码实现: 2.使用 Hutool 工具实现: 背景: 我们在项目中经常会需要用到用户的敏感信息,比如手机号.身份证号.护照号: 当数据需要在页面上进行展示的时候就需要进行脱敏, ...
- 机器学习简单代码示例
机器学习简单代码示例 //在gcc-4.7.2下编译通过. //命令行:g++ -Wall -ansi -O2 test.cpp -o test #include <iostream> u ...
- java 手机号脱敏,身份证号脱敏 工具类
java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...
- tensorflow笔记:流程,概念和简单代码注释
tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果.这两天看了看官方的tutorial,极客学院的文档,以及综合tensorflow的源码,把自己的心得整理了一 ...
- 使用vb获取网页源文件并保存的简单代码
使用vb获取网页源文件并保存的简单代码 Private Sub Command1_Click() Inet1.URL = "HTTP://www.wangjianran.com/" ...
- python代码大全表解释-Python中顺序表的实现简单代码分享
顺序表python版的实现(部分功能未实现) 结果展示: 代码示例: #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object ...
最新文章
- 安全检测点的一些梳理——待长期整理
- JavaScript PopUp生成器
- MySQL用户权限(Host,User,Password)管理(mysql.user)
- svg 贝塞尔曲线图解(记录)
- plotting and saving over line in paraView
- java去除对象属性空格_JAVA 对象中去除空格
- PHP 生成 ppt,php在线编辑器fckedìtor应用.ppt
- 牛客网刷题记录(3)组合逻辑
- 列宽一字符等于多少厘米_Excel中行高与列宽单位和厘米的转换
- 一个基于场景感应的android智能手机防丢失系
- 实现了私聊和群聊功能的聊天工具
- NTT将在全球颇具影响力的技术盛会CES 2021上在线展出
- warning C4819 的解决方法
- 【SVM时序预测】基于粒子群算法优化支持向量机PSO-SVM实现期贷时序数据预测附matlab代码
- core文件处理和进程查询
- 动画(Animation)来回变换
- RAC 中GES/GCS原理
- 计算机作品画图板软件四年级,四年级下册信息技术《word画图工具》教学设计...
- 选择恐惧症应对方法——以终为始来做选择
- 软件测试面试题:假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?
热门文章
- SAP Spartacus的产品主数据模型
- SAP UI5 click list item to navigate to detail page
- SAP CRM BCSet activation debug
- PPR 搜索里max hit不起作用
- SAP CRM Service Order search Tool
- [源码研究]Some debugger screenshot of Slf4jLogger creation
- Linux unshare命名的一些例子
- SAP CRM里使用BAdI阻止产品主数据保存的一种办法
- android decorview动画,Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解...
- 最长递增子序列的个数Python解法