📅  最后修改于: 2023-12-03 15:13:53.713000             🧑  作者: Mango
在开发应用程序期间,确保用户密码、敏感数据和其他机密数据的安全至关重要。在这种情况下,加密是非常重要的。C# 中提供了一些加密技术,其中之一是哈希加密。
哈希加密指的是将任意长度的消息(明文)压缩到某一固定长度的消息摘要(密文)的过程。哈希函数是一种将不同长度的信息压缩到一个固定长度(输出大小通常为128位)的散列值的数学函数,通常被设计为一个不可逆的单向函数。
在本文中,我们将学习如何使用 C# 中提供的 System.Security.Cryptography
命名空间中的哈希算法来加密字符串。
C# 中提供了以下哈希加密算法:
在本教程中,我们将使用 SHA256 算法来加密字符串(可以使用任何算法)。
以下是使用 C# 实现哈希加密字符串的步骤:
导入 System.Security.Cryptography
命名空间
在使用哈希加密算法之前,必须使用以下代码导入 System.Security.Cryptography
命名空间:
using System.Security.Cryptography;
创建哈希加密对象
然后,您需要使用以下代码创建哈希加密对象:
var sha256Hash = SHA256.Create();
这将创建一个 SHA256 的哈希对象,用于将字符串哈希加密。
将字符串转换为字节数组
现在,您需要将要加密的字符串转换为字节数组。
byte[] sourceBytes = Encoding.UTF8.GetBytes("MyPassword");
在本例中,我们将字符串 MyPassword
转换为字节数组。您可以将任何字符串转换为字节数组以进行哈希加密。
计算哈希值
您需要调用哈希对象的 ComputeHash()
方法来计算哈希值。
byte[] hashBytes = sha256Hash.ComputeHash(sourceBytes);
该方法将返回一个字节数组,其中包含加密后的字符串。
将字节数组转换为字符串
现在,您需要将字节数组转换回字符串。
string hashedString = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
此代码将返回一个加密后的字符串。
示例代码
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main(string[] args)
{
var sha256Hash = SHA256.Create();
byte[] sourceBytes = Encoding.UTF8.GetBytes("MyPassword");
byte[] hashBytes = sha256Hash.ComputeHash(sourceBytes);
string hashedString = BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
Console.WriteLine(hashedString);
}
}
在本文中,我们介绍了 C# 中哈希加密算法的基本知识,并提供了用于加密字符串的示例代码。无论是保护用户密码、敏感数据还是其他任何机密信息,哈希加密是使信息安全的关键之一。