😎增加姓名字符串格式脱敏

This commit is contained in:
zuohuaijun 2025-07-09 16:49:40 +08:00
parent a1e6b5bd58
commit 2e8be6c33a
3 changed files with 45 additions and 0 deletions

View File

@ -24,6 +24,22 @@ public class MaskNewtonsoftJsonConverter : JsonConverter<string>
}
}
/// <summary>
/// 姓名掩码
/// </summary>
public class MaskNameNewtonsoftJsonConverter : JsonConverter<string>
{
public override string ReadJson(JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, JsonSerializer serializer)
{
return reader.Value.ToString();
}
public override void WriteJson(JsonWriter writer, string value, JsonSerializer serializer)
{
writer.WriteValue(value?.ToString().MaskName());
}
}
/// <summary>
/// 身份证掩码
/// </summary>

View File

@ -25,6 +25,22 @@ public class MaskSystemTextJsonConverter : JsonConverter<string>
}
}
/// <summary>
/// 姓名掩码
/// </summary>
public class MaskNameSystemTextJsonConverter : JsonConverter<string>
{
public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
return reader.GetString();
}
public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
{
writer.WriteStringValue(value?.ToString().MaskName());
}
}
/// <summary>
/// 身份证掩码
/// </summary>

View File

@ -134,6 +134,19 @@ public static partial class ObjectExtension
};
}
/// <summary>
/// 姓名掩码
/// </summary>
/// <param name="name">姓名</param>
/// <param name="mask">掩码符</param>
/// <returns></returns>
public static string MaskName(this string name, char mask = '*')
{
if (string.IsNullOrEmpty(name) || name.Length < 2) return name;
return string.Concat(name.AsSpan(0, 1), mask.ToString(), name.AsSpan(2));
}
/// <summary>
/// 身份证号掩码
/// </summary>