/// <summary>
 /// Computes the hash of a byte array
 /// </summary>
 /// <param name="Data">Byte array to hash</param>
 /// <param name="Algorithm">Hash algorithm to use (defaults to SHA1)</param>
 /// <returns>The hash of the byte array</returns>
 public static byte[] Hash(this byte[] Data, HashAlgorithm Algorithm = null)
 {
     if (Data == null)
     {
         return(null);
     }
     using (HashAlgorithm Hasher = Algorithm.Check(() => new SHA1CryptoServiceProvider()))
     {
         byte[] HashedArray = Hasher.ComputeHash(Data);
         Hasher.Clear();
         return(HashedArray);
     }
 }