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