Verify file hash after FTP upload
This blog post describes hot to check the file checksum (hash) after upload to FTP server. Ftp.dll .NET FTP component supports most popular hashing algorithms like 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 upload the file, ask the server for hash of the uploaded file, compute the local hash and compare them:
// C# version using (Ftp client = new Ftp()) { client.Connect("ftp.example.org"); client.Login("user", "password"); client.Upload("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.Upload("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.