温馨提示×

c# checksum 是否有现成的库可以使用

c#
小樊
81
2024-09-04 14:40:42
栏目: 编程语言

在C#中,没有现成的库可以直接生成校验和(checksum),但你可以使用.NET内置的类和方法来计算校验和

using System;
using System.Security.Cryptography;
using System.Text;

public class ChecksumHelper
{
    public static string CalculateMD5(string input)
    {
        using (var md5 = MD5.Create())
        {
            var hash = md5.ComputeHash(Encoding.UTF8.GetBytes(input));
            return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
        }
    }

    public static string CalculateSHA1(string input)
    {
        using (var sha1 = SHA1.Create())
        {
            var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(input));
            return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
        }
    }

    public static string CalculateSHA256(string input)
    {
        using (var sha256 = SHA256.Create())
        {
            var hash = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
            return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
        }
    }
}

这个示例中包含了三个方法:CalculateMD5CalculateSHA1CalculateSHA256,分别用于计算字符串的MD5、SHA1和SHA256校验和。你可以根据需要选择合适的方法来计算校验和。

使用示例:

string input = "Hello, world!";
string md5Checksum = ChecksumHelper.CalculateMD5(input);
string sha1Checksum = ChecksumHelper.CalculateSHA1(input);
string sha256Checksum = ChecksumHelper.CalculateSHA256(input);

Console.WriteLine($"MD5: {md5Checksum}");
Console.WriteLine($"SHA1: {sha1Checksum}");
Console.WriteLine($"SHA256: {sha256Checksum}");

这将输出:

MD5: 65a8e27d8879283831b664bd8b7f0ad4
SHA1: 2ef7bde608ce5404e97d5f042f95f89f1c232871
SHA256: 7509e5bda0c762d2bac7f90d758b5b2263fa01ccbc542ab5e3df163be08e6ca9

0