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 fullName[0] + "*";

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

return fullName[0] + new string('*', fullName.Length - 2) + fullName[fullName.Length-1];

}

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

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

public static string SimpleNameMask(string name)

{

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

return name[0] + 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("王五")); // 王*

方法特点对比

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

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

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

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

相关推荐
昇腾CANN6 分钟前
TileLang-Ascend 算子性能优化方法与实操
开发语言·javascript·性能优化·昇腾·cann
沐知全栈开发17 分钟前
ionic 手势事件详解
开发语言
lsx20240638 分钟前
Bootstrap 按钮
开发语言
神仙别闹41 分钟前
基于 Python 实现 BERT 的情感分析模型
开发语言·python·bert
禾叙_1 小时前
【langchain4j】结构化输出(六)
java·开发语言
NQBJT1 小时前
VS Code配置Python人工智能开发环境
开发语言·人工智能·vscode·python
byoass1 小时前
智巢AI知识库深度解析:企业文档管理从大海捞针到精准狙击的进化之路
开发语言·网络·人工智能·安全·c#·云计算
南境十里·墨染春水1 小时前
C++笔记 STL——set
开发语言·c++·笔记
L1624761 小时前
Win11 共享→Windows Server 访问故障总结(极简可复用)
开发语言·windows·php
.柒宇.2 小时前
FastAPI 基础指南:从入门到实战
开发语言·python·fastapi