首先1.引用命名空间
using System.Security.Cryptography; 命名空间下
MD5中的方法都是静态,通过类名打点调用调用方法创建对象
1 public static Tool{ 2 public static string GetMD5(string str) 3 { 4 //创建MD5对象 5 MD5 md5 = MD5.Create(); 6 //开始加密: 通过传入的明文密码,转换为字节数组,还可以通过其他的方式来获取密文 7 //1. 需要将字符串转换成字节数组, 8 byte[] buffer = Encoding.Default.GetBytes(str); 9 // 2.把明文字符串转换得到的字节数组,传给md5,获取密文(哈希值)得到一个字节数组 10 byte[] MD5buffer = md5.ComputeHash(buffer); 11 //如果直接输出会出现乱码,原因: 12 // 如果是把 125 128 212 这个十六进制的数解析出来可能是 假定 我爱你 13 //我们要得到这段编码,那么给字节数组中每个元素都转换为字符串然后拼接起来就可以了 14 15 //将字节数组转换成字符串 16 //将字节数组转换为字符串三种方法: 17 // 1.将字节数组中每个元素按照指定的编码格式解析成字符串 18 //2.直接将数组Tostring(); 19 //3.字节数组中每个元素ToString() 20 21 //这里提供 string 和 stringbuider两种方法拼接 22 //string s = null; 23 StringBuilder sb = new StringBuilder(); 24 for (int i = 0; i < MD5buffer.Length; i++) 25 { 26 sb.Append(MD5buffer[i].ToString("x2")); //ToString();传入参数目的是限定转换为字符串的格式 27 //s += MD5buffer[i].ToString(); 28 } 29 //return s; 30 return sb.ToString(); 31 } 32 }