/// <summary> /// Calculates the hash for fixed length data. /// </summary> /// <exception cref="T:System.ArgumentNullException">data is null.</exception> public PreEncryptData Calculate(PreEncryptData data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } return(CalculatePrivate(data.Bytes)); }
/// <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 PreEncryptData Calculate(PreEncryptData data, PreEncryptData salt) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (salt == null) { throw new ArgumentNullException(nameof(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)); }