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)。

相关文章
|
8月前
|
JSON C# 数据格式
C# 实现简单的 HTTP 请求工具(POST 补充)
该代码实现了一个基于 HttpClient 的异步 HTTP POST 请求工具类,支持以 JSON 格式提交数据并反序列化响应结果,具备异常处理机制,适用于 .NET 环境下的轻量级网络请求操作。
|
8月前
|
C#
C# 实现简单的定时任务工具
基于 `System.Timers.Timer` 实现定时任务,支持周期性与单次执行。通过封装 Timer 类,提供启动、停止功能,并包含异常处理,确保任务稳定运行,适用于后台定时操作场景。
|
8月前
|
JSON C# 数据格式
C# JSON 序列化与反序列化:Newtonsoft.Json 用法
JSON是前后端交互常用格式,Newtonsoft.Json(Json.NET)是C#中最流行的JSON处理库。本文介绍如何使用它实现对象与JSON字符串的序列化和反序列化,并提供封装工具类及调用示例,便于在项目中快速集成与使用。
|
21天前
|
JSON 自然语言处理 API
药品信息查询 API 接口,快速获取药品基础数据
本文系基于阿里云云市场商品页(cmapi00043217)公开数据整理的技术文档,客观介绍全品类药品信息查询API:覆盖近10万种中西药/OTC/处方药,支持多维度检索与30+结构化字段返回,毫秒级响应、100% SLA,提供免费试用及多语言接入示例。
425 0
药品信息查询 API 接口,快速获取药品基础数据
|
3月前
|
人工智能 自然语言处理 搜索推荐
AI英语教育平台的开发
本项目构建AI英语教育平台,融合大语言模型、智能语音识别与评测及现代教学法,专为K12与成人英语学习者设计。涵盖沉浸口语导师、动态背词、智能写作批改、交互阅读、听说评测五大模块,强调教育规律与个性化闭环学习。(239字)
|
4月前
|
人工智能 搜索推荐 程序员
豆包收费68到500,Codex收入7天翻倍,免费AI到头了
上个月翻信用卡账单,发现一个事。 AI相关的月订阅已经悄悄超过2000块了。 Claude,Chatgpt,Gemini,GLM,Minimax,即梦,挨个看了一遍,一个都舍不得停。 每一个都在某个工作流里,真离不开。 我以前觉得AI工具会越来越便宜,最终走向免费。 直到这周看到了两条消息。 ## 企业端在掏真金白银了 OpenAI发了条战报。 GPT-5.5发布一周,A
|
8月前
|
运维 安全 开发工具
秘密这玩意,真不能靠“记性”——Sealed Secrets、Vault 与云 KMS 的一次大实话对比
秘密这玩意,真不能靠“记性”——Sealed Secrets、Vault 与云 KMS 的一次大实话对比
593 8
|
8月前
|
安全 C# 数据安全/隐私保护
C# 实现验证码 + 登录的整合案例
整合图形验证码与用户登录功能,实现安全的登录验证流程。系统生成验证码图片并校验输入,结合用户名密码双重验证,提升账户安全性,有效防止自动化攻击。
|
9月前
|
存储 C#
C#的万年历实现
C#的万年历实现,包含阳历、农历、节气、星期等功能,支持1900-2049年日期范围

热门文章

最新文章