新闻中心

.NET怎么实现MD5和SHA256加密

2025-11-21
浏览次数:
返回列表
.NET中实现MD5和SHA256加密可通过内置类完成,先将字符串转为字节数组,再调用相应哈希算法计算并转换为十六进制字符串,推荐SHA256用于高安全场景,且哈希不可逆。

.net怎么实现md5和sha256加密

在 .NET 中实现 MD5 和 SHA256 加密非常简单,.NET 提供了内置的加密类来完成这些操作。下面介绍如何使用 C# 实现字符串的 MD5 和 SHA256 哈希加密。

MD5 加密实现

MD5 是一种广泛使用的哈希算法,虽然安全性较低,不推荐用于敏感数据保护,但在校验数据完整性等场景仍有使用。

使用 System.Security.Cryptography.MD5 类可以生成 MD5 哈希值:

  • 将字符串转换为字节数组
  • 调用 MD5.ComputeHash() 方法计算哈希
  • 将哈希字节数组转换为十六进制字符串

示例代码:

using System;
using System.Security.Cryptography;
using System.Text;
<p>string input = "Hello, World!";
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);</p><pre class="brush:php;toolbar:false;">string hashString = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
Console.WriteLine("MD5: " + hashString);

}

SHA256 加密实现

SHA256 是更安全的哈希算法,推荐用于密码存储、数字签名等需要高安全性的场景。

使用 System.Security.Cryptography.SHA256 类进行哈希计算:

CA.LA CA.LA

第一款时尚产品在线设计平台,服装设计系统

CA.LA 94 查看详情 CA.LA
  • 同样先将字符串编码为字节
  • 调用 SHA256.ComputeHash() 获取哈希结果
  • 格式化输出为小写十六进制字符串

示例代码:

using System;
using System.Security.Cryptography;
using System.Text;
<p>string input = "Hello, World!";
using (SHA256 sha256 = SHA256.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = sha256.ComputeHash(inputBytes);</p><pre class="brush:php;toolbar:false;">StringBuilder sb = new StringBuilder();
foreach (byte b in hashBytes)
{
    sb.Append(b.ToString("x2"));
}
Console.WriteLine("SHA256: " + sb.ToString());

}

封装成通用方法

为了方便重复使用,可以将两个算法封装成静态方法:

public static class HashHelper
{
    public static string GetMD5(string text)
    {
        using (MD5 md5 = MD5.Create())
        {
            byte[] bytes = Encoding.UTF8.GetBytes(text);
            byte[] hash = md5.ComputeHash(bytes);
            return BitConverter.ToString(hash).Replace("-", "").ToLower();
        }
    }
<pre class="brush:php;toolbar:false;">public static string GetSHA256(string text)
{
    using (SHA256 sha256 = SHA256.Create())
    {
        byte[] bytes = Encoding.UTF8.GetBytes(text);
        byte[] hash = sha256.ComputeHash(bytes);
        StringBuilder sb = new StringBuilder();
        foreach (byte b in hash)
            sb.Append(b.ToString("x2"));
        return sb.ToString();
    }
}

}

调用方式:

Console.WriteLine(HashHelper.GetMD5("test"));
Console.WriteLine(HashHelper.GetSHA256("test"));

基本上就这些,.NET 的加密类设计简洁,使用起来很方便。注意哈希是单向过程,不能解密。如果需要加密解密功能,应使用对称或非对称加密算法如 AES 或 RSA。

以上就是.NET怎么实现MD5和SHA256加密的详细内容,更多请关注其它相关文章!


# 但在  # 望江网站建设哪好  # 青海seo优化供应商  # 浙江高端网站建设费用多少  # SEO学习壁纸简约可爱  # 长春网站建设加盟  # seo的各种手法  # 外贸网站建设费用多少  # 泰州seo站内优化  # 宁海facebook营销推广  # 吉林企业网站推广费用  # 解决问题  # 中文网  # 相关文章  # 编码  # 是一种  # 不安全  # 先将  # 如何使用  # 转换为  # crypto  # .net  # 格式化输出  # 敏感数据  # c#  # 字节  # app 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何提高微信支付的安全性_微信支付安全防护与设置建议  顺丰快递查询系统 官方正版查询入口  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  UC浏览器网页版登录入口官网 电脑版网址入口  从J*aScript对象中精确提取指定属性的教程  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  解决Python logging 中 datefmt 导致时间戳固定不变的问题  J*aScript中localStorage数据的获取、清洗与格式化教程  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  曝R星经典之作开发图 设计简陋但信息密集!  Go Martini框架:动态服务解码后的图片内容  微博网页版直接访问 微博网页版账号管理快速入口  照顾宝贝2小游戏免费秒玩入口  QQ邮箱网页版入口 QQ邮箱官方邮箱登录通道  LINUX怎么设置定时任务_LINUX crontab配置教程  uc浏览器网页版入口 uc浏览器网页版最新网址  Win11怎么开启高性能模式_Windows 11电源计划优化设置  LocoySpider如何部署到云服务器_LocoySpider云部署的远程配置  优化Django表单:提交验证失败后保留用户输入  深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现  汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  Steam官网入口直达 Steam注册及登录步骤  Go语言JSON解析深度指南:动态访问与结构体映射实践  腾讯QQ邮箱登录入口_QQ邮箱官方网站使用地址  必由学登录入口 必由学官方网站在线访问链接  淘宝网网页版登录入口 淘宝官方网页版快捷登录  海棠账号登录入口_登录海棠账户同步阅读记录  QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道  React/Next.js中实现列表项的动态选择与移动  微信网页版官方快速登录入口 微信网页版网页版账号直达  Mudbox图层蒙版怎么用_Mudbox图层蒙版数字雕刻应用技巧  服务端验证_j*ascript输入检查  小米14应用无法联网原因分析_小米14网络权限修复  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  探索高级语言到原生C/C++的转译:挑战与内存管理策略  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  composer的"require-dev"部分是用来做什么的?  高德地图怎么看全景照片_高德地图全景照片浏览教程  痛风发作了怎么办? 快速止痛和后期饮食调理  Python自定义类排序:解决lambda键值访问TypeError的实践指南  Golang如何使用net/url解析URL_Golang URL解析与处理方法  优化HTML表单样式:解决输入框焦点跳动与元素间距问题  修复二维数组索引越界异常:一维循环到二维坐标的正确映射  Angular中父组件异步更新子组件复选框状态的实践指南  深入理解J*a合成构造器:何时以及为何阻止其生成  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南 

搜索