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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构