c# 实现MD5,SHA1,SHA256,SHA512等常用加密算法源代码


当然,我可以为你提供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`方法中,我们提供了一个使用示例,展示了如何调用这些方法来计算给定字符串的哈希值,并将结果打印到控制台。