MD5

一、介绍

  MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法。任何长度的任意内容都可以用MD5计算出散列值。

  特点:

    1、MD5长度为32位的16进制数字和字符串组成。

    2、单向性。

    3、不同的“源数据”,生成不同的MD5,相同的“源数据”,产生相同的MD5值。

    4、使用编码不同,计算出的MD5值不同!

  工具助手:CalcMD5.exe

工具链接:https://pan.baidu.com/s/1uUotZHYdJYKs1-yheLKOGQ
提取码:9sqn

二、对字符串进行MD5加密

 1   private void button1_Click(object sender, EventArgs e)
 2         {
 3             string msg = "Alex";
 4             string ret = GetMd5String(msg);
 5             MessageBox.Show(ret);
 6         }
 7 
 8         private string GetMd5String(string msg)
 9         {
10             StringBuilder SB = new StringBuilder();
11             //1、创建对象;命名空间:using System.Security.Cryptography;
12             MD5 m5 = MD5.Create();
13             //将字符串转byte数组
14             byte[] buffer = System.Text.Encoding.Default.GetBytes(msg);
15             //2、计算
16             byte[] bytes = m5.ComputeHash(buffer);
17             //3、返回
18             for (int i = 0; i < bytes.Length; i++)
19             {
20                 SB.Append(bytes[i].ToString("x2")); //x:小写的十六进制;X:大写的十六进制;2:一位时,前面补0
21             }
22             m5.Clear(); //用完后,清除内存
23             //将byte数组以十六进制返回
24             return SB.ToString();
25         }

 三、对文件进行MD5加密

 1         private string GetMd5String2(string path)
 2         {
 3             StringBuilder sb = new StringBuilder();
 4             MD5 m5 = MD5.Create();
 5             FileStream fs = File.OpenRead(path);
 6             byte[] buffer = m5.ComputeHash(fs);
 7             for (int i = 0; i < buffer.Length; i++)
 8             {
 9                 sb.Append(buffer[i].ToString("x2"));
10             }
11             m5.Clear();
12             fs.Close();
13             fs.Dispose();
14             return sb.ToString();
15         }

 四、MD5应用一

  对数据库中的密码进行加密

数据库数据及表结构

验证:

项目地址链接:https://pan.baidu.com/s/1Wb7cbU-nKrlySsEZivnghQ 

提取码:okga

posted @ 2019-05-07 23:24  陈彦斌  阅读(1135)  评论(0编辑  收藏  举报