您的位置:首页 > 编程语言 > C#

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

2016-10-24 16:29 471 查看
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         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: