using System; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; namespace QYZH.InteractiveMagazine.Common.Extensions { /// /// 字符串扩展方法 /// public static class StringExtension { /// /// MD5加密 /// /// 原始字符串 /// MD5哈希值(32位小写) public static string ToMd5(this string input) { if (string.IsNullOrEmpty(input)) { return string.Empty; } using (var md5 = MD5.Create()) { byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(input)); var sb = new StringBuilder(); foreach (byte b in bytes) { sb.Append(b.ToString("x2")); } return sb.ToString(); } } /// /// SHA256加密 /// /// 原始字符串 /// SHA256哈希值(64位小写) public static string ToSha256(this string input) { if (string.IsNullOrEmpty(input)) { return string.Empty; } using (var sha256 = SHA256.Create()) { byte[] bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(input)); var sb = new StringBuilder(); foreach (byte b in bytes) { sb.Append(b.ToString("x2")); } return sb.ToString(); } } /// /// Base64编码 /// /// 原始字符串 /// Base64编码后的字符串 public static string ToBase64(this string input) { if (string.IsNullOrEmpty(input)) { return string.Empty; } byte[] bytes = Encoding.UTF8.GetBytes(input); return Convert.ToBase64String(bytes); } /// /// Base64解码 /// /// Base64编码的字符串 /// 解码后的原始字符串 public static string FromBase64(this string input) { if (string.IsNullOrEmpty(input)) { return string.Empty; } byte[] bytes = Convert.FromBase64String(input); return Encoding.UTF8.GetString(bytes); } /// /// 判断字符串是否为空或空白 /// /// 待检查的字符串 /// 是否为空或空白 public static bool IsNullOrWhiteSpace(this string input) { return string.IsNullOrWhiteSpace(input); } /// /// 手机号脱敏 /// /// 手机号 /// 脱敏后的手机号(中间4位用*替换) public static string MaskPhone(this string phone) { if (string.IsNullOrEmpty(phone) || phone.Length < 7) { return phone; } return phone.Substring(0, 3) + "****" + phone.Substring(phone.Length - 4); } /// /// 身份证脱敏 /// /// 身份证号 /// 脱敏后的身份证号(保留前3位和后4位) public static string MaskIdCard(this string idCard) { if (string.IsNullOrEmpty(idCard) || idCard.Length < 7) { return idCard; } int length = idCard.Length; return idCard.Substring(0, 3) + new string('*', length - 7) + idCard.Substring(length - 4); } /// /// 正则匹配 /// /// 待匹配的字符串 /// 正则表达式 /// 是否匹配 public static bool IsMatchRegex(this string input, string pattern) { if (string.IsNullOrEmpty(input) || string.IsNullOrEmpty(pattern)) { return false; } return Regex.IsMatch(input, pattern); } } }