📜  C# 计算文件的 MD5 校验和 - C# (1)

📅  最后修改于: 2023-12-03 14:59:43.596000             🧑  作者: Mango

C# 计算文件的 MD5 校验和

在软件开发中,我们经常需要对文件进行校验以确保其完整性和安全性。MD5 是一种广泛使用的校验方法之一。本文将介绍如何使用 C# 编写代码计算文件的 MD5 校验和。

前置准备

在开始编写代码之前,需要确保您的开发环境中已安装 .NET Framework。在 Visual Studio 中创建一个新的控制台应用程序项目。我们将在控制台应用程序中进行演示。

引入命名空间

在代码顶部引入以下命名空间:

using System.IO;
using System.Security.Cryptography;

其中,System.IO 命名空间提供了访问文件和文件夹的类。System.Security.Cryptography 命名空间包含一组进行加密和解密操作的类。

计算 MD5 校验和

下面是计算文件的 MD5 校验和的代码:

private static string GetMD5Hash(string filePath)
{
    using (var md5 = MD5.Create())
    {
        using (var stream = File.OpenRead(filePath))
        {
            var hash = md5.ComputeHash(stream);
            return BitConverter.ToString(hash).Replace("-", string.Empty);
        }
    }
}

首先,我们创建了一个 MD5 实例。然后,使用 File.OpenRead 方法打开要计算校验和的文件。接着,使用计算出文件的 MD5。最后,将字节数组转换为字符串。这里使用了 BitConverter 类的 ToString 方法将字节数组转换为十六进制字符串。

调用方法

Main 方法中调用上述 GetMD5Hash 方法,并将要计算校验和的文件路径传递给它。

static void Main(string[] args)
{
    var filePath = @"C:\test.txt";
    var md5Hash = GetMD5Hash(filePath);
    Console.WriteLine($"MD5 checksum of file {filePath} is {md5Hash}");
    Console.ReadLine();
}
完整代码

完整的计算文件 MD5 校验和的 C# 代码如下:

using System;
using System.IO;
using System.Security.Cryptography;

namespace MD5Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            var filePath = @"C:\test.txt";
            var md5Hash = GetMD5Hash(filePath);
            Console.WriteLine($"MD5 checksum of file {filePath} is {md5Hash}");
            Console.ReadLine();
        }

        private static string GetMD5Hash(string filePath)
        {
            using (var md5 = MD5.Create())
            {
                using (var stream = File.OpenRead(filePath))
                {
                    var hash = md5.ComputeHash(stream);
                    return BitConverter.ToString(hash).Replace("-", string.Empty);
                }
            }
        }       
    }
}
总结

在本文中,我们介绍了如何使用 C# 编写代码计算文件的 MD5 校验和。这对于确保文件的完整性和安全性非常重要。通过使用以前所述的代码,您可以轻松地计算文件的 MD5 校验和,在进行文件传输或分享文件时使用。