1 /// <summary>
2 /// 传一个文件的路径,返回该文件的MD5字符串
3 /// </summary>
4 /// <param name="path"></param>
5 /// <returns></returns>
6 private static string GetMd5FromFile(string path)
7 {
8 using (MD5 md5File= MD5.Create())
9 {
10 using (FileStream fileRead = File.OpenRead(path))
11 {
12 byte[] md5Buffer= md5File.ComputeHash(fileRead);
13 md5File.Clear();
14 StringBuilder sbMd5 = new StringBuilder();
15 for (int i = 0; i < md5Buffer.Length; i++)
16 {
17 sbMd5.Append(md5Buffer[i].ToString("X2"));
18 }
19 return sbMd5.ToString();
20 }
21 }
22
23 }
24
25
26
27
28 /// <summary>
29 /// 传一个字符串,方法改字符串的MD5字符串
30 /// </summary>
31 /// <param name="msg"></param>
32 /// <returns></returns>
33 private static string GetMd5FromString(string msg)
34 {
35 //1.创建一个用来计算MD5值的类的对象
36 using ( MD5 md5 = MD5.Create())
37 {
38 //把字符串转换成byte[]
39 byte[] msgBuffer = Encoding.UTF8.GetBytes(msg);
40 //2.计算给定字符串的MD5值,如何把一个长度为16的byte[]数组转换为一个长度为32的字符串:就是把每个byte转成16进制同时保留2位即可
41 byte[] md5Buffer= md5.ComputeHash(msgBuffer);
42 md5.Clear();
43 StringBuilder sbMd5 = new StringBuilder();
44 for (int i = 0; i < md5Buffer.Length; i++)
45 {
46 //字母小写:x ;字母大写:X
47 sbMd5.Append(md5Buffer[i].ToString("X2"));
48 }
49
50 return sbMd5.ToString();
51 }
52
53
54 }