C#姓名脱敏的几种实现方法

 更新时间:2025年11月26日 11:47:34   作者:曹牧  
在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];
}

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

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

public static string SimpleNameMask(string name)
{
    if (string.IsNullOrEmpty(name)) return name;
    
    return name[0] + new string('*', name.Length - 1);
}

3. 正则表达式脱敏‌

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

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("王五")); // 王*

方法特点对比

方法类型     显示效果     适用场景
基础脱敏     张*、李*郎     常规业务展示
简化脱敏     张*、李*     高隐私要求
正则脱敏     张*、李*郎     复杂格式处理

到此这篇关于C#姓名脱敏的几种实现方法的文章就介绍到这了,更多相关C#姓名脱敏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#绘制时钟的方法

    C#绘制时钟的方法

    这篇文章主要为大家详细介绍了C#绘制时钟的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 逐步讲解快速排序算法及C#版的实现示例

    逐步讲解快速排序算法及C#版的实现示例

    快速排序在时间复杂度同为O(N*logN)的几种排序方法中效率较高,因而比较常用,接下来这里就来逐步讲解快速排序算法及C#版的实现示例
    2016-06-06
  • Unity 读取文件 TextAsset读取配置文件方式

    Unity 读取文件 TextAsset读取配置文件方式

    这篇文章主要介绍了Unity 读取文件 TextAsset读取配置文件的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#中#define后面只加一个参数的解释

    C#中#define后面只加一个参数的解释

    今天小编就为大家分享一篇关于C#中#define后面只加一个参数的解释,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • C#找出字符串中第一个字母并大写的方法

    C#找出字符串中第一个字母并大写的方法

    这篇文章主要介绍了C#找出字符串中第一个字母并大写的方法,通过C#面向对象的方式定义了类的成员函数实现字符串转换的功能,需要的朋友可以参考下
    2016-02-02
  • C#使用GDI绘制矩形的方法

    C#使用GDI绘制矩形的方法

    这篇文章主要介绍了C#使用GDI绘制矩形的方法,涉及C#使用GDI绘图的相关技巧,需要的朋友可以参考下
    2015-04-04
  • C#设计模式之建造者模式生成器模式示例详解

    C#设计模式之建造者模式生成器模式示例详解

    这篇文章主要为大家介绍了C#设计模式之建造者模式生成器模式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • C#实现Windows服务测试与调试

    C#实现Windows服务测试与调试

    这篇文章介绍了C#实现Windows服务测试与调试的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • 使用C#实现对任意区域任意大小的截图

    使用C#实现对任意区域任意大小的截图

    这篇文章主要为大家详细介绍了如何使用C#实现简单的截图功能,可以对任意区域任意大小的截图,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • treeview递归绑定的两种方法

    treeview递归绑定的两种方法

    这篇文章主要介绍了treeview递归绑定的两种方法,需要的朋友可以参考下
    2014-04-04

最新评论