一、介绍
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 *