当然,我可以为你提供C#中实现MD5, SHA1, SHA256, 和 SHA512等常用加密算法的示例代码。请注意,这些示例代码将直接展示如何在C#中使用这些加密算法,而不包含任何特定的库加载或命名空间之外的配置。
using System;
using System.Security.Cryptography;
using System.Text;
public class HashUtilities
{
// MD5 加密
public static string ComputeMD5Hash(string input)
{
using (var md5 = MD5.Create())
{
var result = md5.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(result.Length * 2);
foreach (var t in result)
{
sb.Append(t.ToString("x2"));
}
return sb.ToString();
}
}
// SHA1 加密
public static string ComputeSHA1Hash(string input)
{
using (var sha1 = SHA1.Create())
{
var result = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(result.Length * 2);
foreach (var t in result)
{
sb.Append(t.ToString("x2"));
}
return sb.ToString();
}
}
// SHA256 加密
public static string ComputeSHA256Hash(string input)
{
using (var sha256 = SHA256.Create())
{
var result = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(result.Length * 2);
foreach (var t in result)
{
sb.Append(t.ToString("x2"));
}
return sb.ToString();
}
}
// SHA512 加密
public static string ComputeSHA512Hash(string input)
{
using (var sha512 = SHA512.Create())
{
var result = sha512.ComputeHash(Encoding.UTF8.GetBytes(input));
var sb = new StringBuilder(result.Length * 2);
foreach (var t in result)
{
sb.Append(t.ToString("x2"));
}
return sb.ToString();
}
}
}
// 使用示例
class Program
{
static void Main(string[] args)
{
string input = "Hello, World!";
Console.WriteLine($"MD5: {HashUtilities.ComputeMD5Hash(input)}");
Console.WriteLine($"SHA1: {HashUtilities.ComputeSHA1Hash(input)}");
Console.WriteLine($"SHA256: {HashUtilities.ComputeSHA256Hash(input)}");
Console.WriteLine($"SHA512: {HashUtilities.ComputeSHA512Hash(input)}");
}
}
这段代码展示了如何在C#中定义一个`HashUtilities`类,该类包含用于计算MD5, SHA1, SHA256, 和 SHA512哈希的静态方法。每个方法都接受一个字符串输入,并使用相应的哈希算法计算其哈希值,然后返回该哈希值的十六进制字符串表示。在`Main`方法中,我们提供了一个使用示例,展示了如何调用这些方法来计算给定字符串的哈希值,并将结果打印到控制台。