C# 哈希值计算:MD5/SHA256 加密

简介: 本示例展示了C#中使用MD5和SHA256算法生成哈希值的方法,适用于密码加密与数据校验。MD5安全性较低,建议仅用于非敏感场景;密码存储推荐使用SHA256配合盐值以增强安全性。

哈希算法用于将数据转换为固定长度的哈希值(不可逆),常用于密码存储、文件校验。
using System.Security.Cryptography;
using System.Text;

public class HashHelper
{
// 计算MD5哈希值(32位小写)
public static string ComputeMD5(string input)
{
if (string.IsNullOrEmpty(input)) return "";
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
// 转换为16进制字符串
StringBuilder sb = new StringBuilder();
foreach (byte b in hashBytes)
{
sb.Append(b.ToString("x2"));
}
return sb.ToString();
}
}

// 计算SHA256哈希值(64位小写)
public static string ComputeSHA256(string input)
{
    if (string.IsNullOrEmpty(input)) return "";
    using (SHA256 sha256 = SHA256.Create())
    {
        byte[] inputBytes = Encoding.UTF8.GetBytes(input);
        byte[] hashBytes = sha256.ComputeHash(inputBytes);
        StringBuilder sb = new StringBuilder();
        foreach (byte b in hashBytes)
        {
            sb.Append(b.ToString("x2"));
        }
        return sb.ToString();
    }
}

}

// 调用示例
string password = "123456";
string md5Hash = HashHelper.ComputeMD5(password);
string sha256Hash = HashHelper.ComputeSHA256(password);

Console.WriteLine($"密码:{password}");
Console.WriteLine($"MD5哈希(32位):{md5Hash}");
Console.WriteLine($"SHA256哈希(64位):{sha256Hash}");
// 输出:
// 密码:123456
// MD5哈希(32位):e10adc3949ba59abbe56e057f20f883e
// SHA256哈希(64位):8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
注意:MD5 安全性较低,建议用于非敏感数据校验;密码存储建议使用 SHA256 + 盐值(Salt)。

相关文章
|
3月前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
3月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
3月前
|
C#
C# 实现简单的定时任务工具
基于 `System.Timers.Timer` 实现定时任务,支持周期性与单次执行。通过封装 Timer 类,提供启动、停止功能,并包含异常处理,确保任务稳定运行,适用于后台定时操作场景。
|
3月前
|
安全 C# 数据安全/隐私保护
C# 实现验证码 + 登录的整合案例
整合图形验证码与用户登录功能,实现安全的登录验证流程。系统生成验证码图片并校验输入,结合用户名密码双重验证,提升账户安全性,有效防止自动化攻击。
|
缓存 NoSQL 数据可视化
c#如何将数据缓存至Redis
.netcore c# 如何将数据库查询的数据缓存至Redis
393 0
|
域名解析 网络协议 调度
阿里云移动研发平台EMAS支持纯血鸿蒙HarmonyOS NEXT
阿里云移动研发平台EMAS作为面向应用全生命周期提供一站式的应用研发管理服务产品,其核心产品包括云构建,HTTPDNS 和移动推送正式推出了针对纯血鸿蒙的SDK版本,将为广大开发者在鸿蒙生态中构建高效、稳定、可靠的企业级应用提供强有力的支持。如有疑问,请进入钉钉群(群号35248489)进行相关咨询。
|
前端开发 JavaScript PHP
在线扒站工具网站源码-一键扒取网站源代码
在线扒站工具网站源码-一键扒取网站源代码
1077 6
|
算法 数据安全/隐私保护
|
7月前
|
人工智能 运维 中间件
CTI中间件:现代呼叫中心的核心开发平台
乐科CTI中间件助力企业高效构建智能呼叫中心,集成通信与业务系统,支持多协议、AI融合、高可用部署,广泛应用于客服、营销等场景,降低开发成本,提升运维效率。

热门文章

最新文章