新闻中心
C# 怎么进行 MD5 加密_C# MD5 加密实现教程
首先使用System.Security.Cryptography.MD5对字符串或文件进行哈希计算,字符串需先转为字节数组,文件则通过FileStream读取,结果均转换为小写十六进制字符串;但MD5存在碰撞风险,不适用于密码存储,推荐改用SHA256或更高安全算法。

在 C# 中实现 MD5 加密非常简单,.NET Framework 和 .NET Core 都提供了内置的加密类来处理哈希算法。MD5 虽然安全性较低,不推荐用于敏感数据(如密码存储),但在校验文件完整性、生成唯一标识等场景中仍被广泛使用。
1. 使用 System.Security.Cryptography.MD5 进行字符串加密
要对字符串进行 MD5 加密,需要将字符串转换为字节数组,然后通过 MD5 类计算哈希值,最后将哈希结果转换为十六进制字符串。
示例代码:
刺鸟创客
一款专业高效稳定的AI内容创作平台
110
查看详情
using System;
using System.Security.Cryptography;
using System.Text;
<p>public static string ComputeMD5(string input)
{
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);</p><pre class="brush:php;toolbar:false;"> // 将哈希字节数组转换为十六进制字符串
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2")); // x2 表示小写十六进制
}
return sb.ToString();
}
}
// 使用示例 string source = "Hello, World!"; string md5Hash = ComputeMD5(source); Console.WriteLine($"MD5 哈希值: {md5Hash}");
2. 对文件进行 MD5 校验
除了字符串,还可以对整个文件内容进行 MD5 计算,常用于验证文件是否被修改或下载完整。
示例代码:
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
<p>public static string ComputeFileMD5(string filePath)
{
if (!File.Exists(filePath))
throw new FileNotFoundException("文件未找到", file
Path);</p><pre class="brush:php;toolbar:false;">using (MD5 md5 = MD5.Create())
using (FileStream stream = File.OpenRead(filePath))
{
byte[] hashBytes = md5.ComputeHash(stream);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}
}
// 使用示例 try { string fileHash = ComputeFileMD5(@"C:\example.txt"); Console.WriteLine($"文件 MD5: {fileHash}"); } catch (Exception ex) { Console.WriteLine($"错误: {ex.Message}"); }
3. 注意事项与安全建议
尽管 MD5 实现简单、速度快,但存在严重安全问题:
- 碰撞攻击:不同内容可能产生相同的 MD5 值,已被证明不安全。
- 不适合密码存储:应使用 bcrypt、scrypt 或 PBKDF2 等专用算法。
- 推荐替代方案:如需更安全的哈希,可使用 SHA256 或 SHA512。
提示:若需更高安全性,可替换 MD5 为 SHA256:
using (SHA256 sha256 = SHA256.Create())
{
byte[] hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
// 同样转为十六进制
}
基本上就这些。C# 的加密类设计统一,掌握 MD5 后很容易扩展到其他哈希或加密算法。
以上就是C# 怎么进行 MD5 加密_C# MD5 加密实现教程的详细内容,更多请关注其它相关文章!
# 但在
# 网站推广的预算
# 店铺的营销和推广
# 大同互联网关键词排名
# 如何打造区块链网站建设
# 广告营销推广语录大全
# 酒店网站建设视频教程
# 零距离seo广告
# 宿迁seo推广外包公司
# 网站推广有哪些方式好点
# 服务好网站推广与优化
# 中文网
# 相关文章
# 很容易
# c#
# 已被
# 抽象类
# 如何使用
# 信号量
# 转换为
# crypto
# .net
# 敏感数据
# stream
# 字节
# app
# md5加密
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
最新韩小圈网页版登录入口_官网在线观看官方链接
Angular中单选按钮的正确使用与常见陷阱解析
zookeeper 都有哪些功能?
可靠CSGO开箱平台解析 CSGO开箱网合集
2026春节假期时间安排 2026春节假日查询
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画
Win11怎么开启高性能模式_Windows 11电源计划优化设置
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】
离线运行Go语言之旅:本地部署与GOPATH配置指南
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法
Go语言中的*string:深入理解字符串指针
Log4j Console Appender性能瓶颈与高并发优化策略
蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
Promise错误处理:在catch后终止链式then执行的策略
怎么去除衣服上的口红印_生活小妙招教你用酒精轻松擦除
126邮箱网页版官方入口 126邮箱账号在线登录平台
SteamMachine定价或为699美元 大家想入手吗?
支付宝如何设置安全保护_支付宝安全设置的全面教程
打开就能玩的植物大战僵尸 植物大战僵尸网页版传送门
Composer如何解决json扩展缺失的错误
c++ 命名空间怎么用 c++ namespace使用指南
sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
蛙漫2台版漫画地址 Manwa2正版网页版链接
文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
Selenium Python中处理点击后新窗口加载冻结问题的策略与实践
解决Python logging 中 datefmt 导致时间戳固定不变的问题
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
抖音网页版平台入口 抖音网页版官网在线访问教程
ArrayList与LinkedList核心操作的Big-O复杂度分析
steam官方入口大全 steam账号注册及操作指南
知音漫客官网漫画下载_知音漫客网页版阅读记录
MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏
机器学习中对数变换预测结果的反向还原
vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法
京东单号查询入口_京东快递订单追踪入口
谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】
C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言
Pandas DataFrame:高效添加条件计算列
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
海棠电脑版入口_通过电脑访问海棠官网阅读
QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台


2025-11-06
浏览次数:次
返回列表
Path);</p><pre class="brush:php;toolbar:false;">using (MD5 md5 = MD5.Create())
using (FileStream stream = File.OpenRead(filePath))
{
byte[] hashBytes = md5.ComputeHash(stream);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}