C#:姓名脱敏

在C#中实现姓名脱敏,主要通过字符串处理来隐藏部分信息,保护用户隐私。以下是几种常见的实现方法:

  1. 基础姓名脱敏(保留首尾字符)‌

这种方法适用于大多数中文姓名场景,保留姓氏和最后一个字,中间用星号填充2。

public static string NameMask(string fullName)

{

if (string.IsNullOrEmpty(fullName)) return string.Empty;

if (fullName.Length == 1) return fullName;

if (fullName.Length == 2) return fullName0 + "*";

// 长度大于等于3:保留首字符和最后一个字符

return fullName0 + new string('*', fullName.Length - 2) + fullNamefullName.Length-1;

}

  1. 简化版脱敏(仅显示姓氏)‌

对于更严格的隐私保护需求,可以只显示姓氏,其余全部隐藏。

public static string SimpleNameMask(string name)

{

if (string.IsNullOrEmpty(name)) return name;

return name0 + new string('*', name.Length - 1);

}

  1. 正则表达式脱敏‌

使用正则表达式可以更灵活地处理各种姓名格式。

public static string RegexNameMask(string name)

{

if (string.IsNullOrEmpty(name)) return name;

// 保留第一个字符,隐藏其余字符

string pattern = @"(?<=.{1}).";

return Regex.Replace(name, pattern, "*");

}

使用示例

// 测试示例

Console.WriteLine(NameMask("张三")); // 张*

Console.WriteLine(NameMask("李四郎")); // 李*郎

Console.WriteLine(NameMask("欧阳明日")); // 欧**日

Console.WriteLine(SimpleNameMask("王五")); // 王*

方法特点对比

方法类型 显示效果 适用场景

基础脱敏 张*、李*郎 常规业务展示

简化脱敏 张*、李* 高隐私要求

正则脱敏 张*、李*郎 复杂格式处理

相关推荐
Lyndon-李大鹏8 小时前
QT-VS环境
开发语言·qt
微学AI8 小时前
内网穿透的应用-把飞牛NAS变成家庭录像中心:EasyNVR部署与远程回放实战
开发语言·php
峥嵘life8 小时前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
BerryS3N8 小时前
深度解析:从零构建生产级大模型 RAG(检索增强生成)系统全栈指南
开发语言·python·ai
今儿敲了吗9 小时前
Python——函数基础
开发语言·笔记·python
CHANG_THE_WORLD9 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
kels88999 小时前
单连接动态增减订阅:股票行情API后端降负载实战方案
开发语言·笔记·python·信息可视化·金融
a4493153629 小时前
MacBook USB-C不充电故障诊断:从PD握手到主板供电链路
c语言·开发语言·macos·电脑
德福危险10 小时前
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3
开发语言·bash
meng半颗糖10 小时前
3.Java流程控制语句
java·开发语言·intellij-idea