Verify file hash after FTP download
This blog post describes how to check the file checksum (hash) after downloading the file from FTP server. Ftp.dll .NET FTP component supports most popular hashing algorithms (CRC, MD5 and SHA1).
First add appropriate namespaces:
// C# version using Limilabs.FTP.Client; using Limilabs.FTP.Client.Hash;
' VB.NET version Imports Limilabs.FTP.Client Imports Limilabs.FTP.Client.Hash
Then download the file, ask server for its hash, compute the local hash and compare them:
// C# version using (Ftp client = new Ftp()) { client.Connect("ftp.example.org"); client.Login("user", "password"); client.Download("report.txt", @"c:\report.txt"); byte[] serverHash = client.GetFileHash( "report.txt", FtpHashType.CRC); FileHash hash = new FileHash(FtpHashType.CRC); bool hashIsValid = hash.IsValid(@"c:\report.txt", serverHash); Console.WriteLine(hashIsValid); client.Close(); }
' VB.NET version Using client As New Ftp() client.Connect("ftp.example.org") client.Login("user", "password") client.Download("report.txt", "c:\report.txt") Dim serverHash As Byte() = client.GetFileHash( _ "report.txt", _ FtpHashType.CRC) Dim hash As New FileHash(FtpHashType.CRC) Dim hashIsValid As Boolean = hash.IsValid("c:\report.txt", serverHash) Console.WriteLine(hashIsValid) client.Close() End Using
You can use CRC, MD5 and SHA1 algorithms for hash verification.