1 /// <summary>
2 /// md5文件加密字符串加密
3 /// </summary>
4 public static class MD5Helper
5 {
6 /// <summary>
7 /// 提供字符串根据指定的编码获取MD5值
8 /// </summary>
9 /// <param name="str">字符串</param>
10 /// <param name="encoding">编码格式</param>
11 /// <returns>MD5值</returns>
12 public static string GetMd5ByString(string str, Encoding encoding)
13 {
14 MD5 md5 = MD5.Create();
15 byte[] bs = encoding.GetBytes(str);
16 bs = md5.ComputeHash(bs);
17 StringBuilder sb = new StringBuilder();
18 for (int i = 0; i < bs.Length; i++)
19 {
20 sb.Append(bs[i].ToString("x2"));
21 }
22 return sb.ToString();
23 }
24 /// <summary>
25 /// 提供字符串获取MD5值(UTF-8编码)
26 /// </summary>
27 /// <param name="str">字符串</param>
28 /// <returns>MD5值</returns>
29 public static string GetMd5ByString(string str)
30 {
31 return GetMd5ByString(str, Encoding.UTF8);
32 }
33
34 /// <summary>
35 /// 根据文件获得MD5值
36 /// </summary>
37 /// <param name="filePath">文件路径</param>
38 /// <returns>MD5值</returns>
39 public static string GetMd5ByFile(string filePath)
40 {
41 //文件不存在
42 if (!File.Exists(filePath))
43 {
44 throw new Exception("文件不存在");
45 }
46 byte[] bs = MD5.Create().ComputeHash(new FileStream(filePath, FileMode.Open));
47 StringBuilder sb = new StringBuilder();
48 for (int i = 0; i < bs.Length; i++)
49 {
50 sb.Append(bs[i].ToString("x2"));
51 }
52 return sb.ToString();
53 }
54
55 }