首页 > 代码库 > C#三层架构(获取中文拼音和给密码加密)

C#三层架构(获取中文拼音和给密码加密)

  在学习三层架构时,我们在需要获取中文字所获取的拼音,需要引进一个ChnCharInfo.dll的程序文件,并且引用命名空间

using Microsoft.International.Converters.PinYinConverter;

接下来是如何实现拼音的获取:

 1 public static string GetPinyins(string name) 2         { 3             //进行拼接字符串 4             StringBuilder sb = new StringBuilder(); 5             //由于ChineseChar中必须为char类型,所以我们进行字符串遍历成char类型 6             foreach (char item in name) 7             { 8                 //判断得到的字符是否为合法的中文字符 9                 if (ChineseChar.IsValidChar(item))10                 {11                     //如果是合法的,那么执行下面的语句12                     ChineseChar c = new ChineseChar(item);13                     //根据传入的字符得到拼音14                     ReadOnlyCollection<string> ps = c.Pinyins;15                     //拼接字符串,这里说明一下:由于拼音是有声韵的,在这里得到的拼音也是包含音调,即ps的最后一个字符16                     //所以我们要截取字符串,保留前面的17                     sb.Append(ps[0].Substring(0, ps[0].Length - 1));18                 }19                 else20                 {21                     //如果为不合法的,不用获取,直接拼接22                     sb.Append(item);23                 }24             }25             //返回得到的拼接字符串26             return sb.ToString();27         } 

那怎么获取对密码加密呢?

首先也要引用:

using System.Security.Cryptography;

实现:

 1 public static string GetMD5(string pwd) 2         { 3             //这里我们使用的Winform自带的MD5加密 4             //这里的MD5为私有的不可访问的,不过提供了一个可以访问的公共的方法进行创建 5             MD5 md5 = MD5.Create(); 6             //准备拼接字符串 7             StringBuilder sb = new StringBuilder(); 8             //通过用户传入的密码得到byte数组 9             byte[] bytes = Encoding.Default.GetBytes(pwd);10             //将得到的byte数组进行计算Hash码11             byte[] newBytes = md5.ComputeHash(bytes);12             //遍历每一个Hash码进行16进制的转换13             foreach (byte item in newBytes)14             {15                 //将Hash进行16进制格式的转换16                 sb.Append(item.ToString("X2"));17             }18             //返回得到的拼接字符串,即得到32位的加密密文19             return sb.ToString();20         } 

 

C#三层架构(获取中文拼音和给密码加密)