Exemple #1
0
        /// <summary>
        /// Calculates the hash for fixed length data with a prefixed salt value.
        ///  </summary>
        /// <exception cref="T:System.ArgumentNullException">data or salt is null.</exception>
        /// <remarks>A "salt" value is random data prefixed to every hashed value to prevent common dictionary attacks.</remarks>
        public Data Calculate(Data data, Data salt)
        {
            if (data == null) throw new ArgumentNullException("data");
             if (salt == null) throw new ArgumentNullException("salt");

             var value = new byte[data.Bytes.Length + salt.Bytes.Length];
             salt.Bytes.CopyTo(value, 0);
             data.Bytes.CopyTo(value, salt.Bytes.Length);
             return CalculatePrivate(value);
        }
 private Data DoSaltedHash(HashProvider p, Data salt)
 {
     using (var h = new Hash(p))
      {
     return h.Calculate(new Data(_targetString), salt);
      }
 }
Exemple #3
0
 /// <summary>
 /// Calculates the hash for fixed length data.
 /// </summary>
 /// <exception cref="T:System.ArgumentNullException">data is null.</exception>
 public Data Calculate(Data data)
 {
     if (data == null) throw new ArgumentNullException("data");
      return CalculatePrivate(data.Bytes);
 }