当前位置: 代码网 > it编程>编程语言>Asp.net > C#姓名脱敏的几种实现方法

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

2025年11月26日 Asp.net 我要评论
在c#中实现姓名脱敏,主要通过字符串处理来隐藏部分信息,保护用户隐私。以下是几种常见的实现方法:1. 基础姓名脱敏(保留首尾字符)‌这种方法适用于大多数中文姓名场景,保留姓氏和最后一个字,中

在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#姓名脱敏内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com