12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- using System.Net;
- using System.Net.FtpClient;
- namespace Examples {
- public class GetHashExample {
- public static void GetHash() {
- using (FtpClient cl = new FtpClient()) {
- cl.Credentials = new NetworkCredential("user", "pass");
- cl.Host = "some.ftpserver.on.the.internet.com";
- // If server supports the HASH command then the
- // FtpClient.HashAlgorithms flags will NOT be equal
- // to FtpHashAlgorithm.NONE.
- if (cl.HashAlgorithms != FtpHashAlgorithm.NONE) {
- FtpHash hash;
- // Ask the server to compute the hash using whatever
- // the default hash algorithm (probably SHA-1) on the
- // server is.
- hash = cl.GetHash("/path/to/remote/somefile.ext");
- // The FtpHash.Verify method computes the hash of the
- // specified file or stream based on the hash algorithm
- // the server computed its hash with. The classes used
- // for computing the local hash are part of the .net
- // framework, located in the System.Security.Cryptography
- // namespace and are derived from
- // System.Security.Cryptography.HashAlgorithm.
- if (hash.Verify("/path/to/local/somefile.ext")) {
- Console.WriteLine("The computed hashes match!");
- }
- // Manually specify the hash algorithm to use.
- if (cl.HashAlgorithms.HasFlag(FtpHashAlgorithm.MD5)) {
- cl.SetHashAlgorithm(FtpHashAlgorithm.MD5);
- hash = cl.GetHash("/path/to/remote/somefile.ext");
- if (hash.Verify("/path/to/local/somefile.ext")) {
- Console.WriteLine("The computed hashes match!");
- }
- }
- }
- }
- }
- }
- }
|