c#大圣之路笔记——MD5实现字符串、文件加密

 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         }
原文地址:https://www.cnblogs.com/allenzhang/p/5993501.html