System.Security.Cryptography (mscorlib.dll) | abstract class |
public abstract class HashAlgorithm : ICryptoTransform, IDisposable { // Protected Constructors protected HashAlgorithm( ); // Protected Instance Fields protected int HashSizeValue; protected byte[ ] HashValue; protected int State; // Public Instance Properties public virtual bool CanReuseTransform{get; // implements ICryptoTransform public virtual bool CanTransformMultipleBlocks{get; // implements ICryptoTransform public virtual byte[ ] Hash{get; } public virtual int HashSize{get; } public virtual int InputBlockSize{get; // implements ICryptoTransform public virtual int OutputBlockSize{get; // implements ICryptoTransform // Public Static Methods public static HashAlgorithm Create( ); public static HashAlgorithm Create(string hashName); // Public Instance Methods public void Clear( ); public byte[ ] ComputeHash(byte[ ] buffer); public byte[ ] ComputeHash(byte[ ] buffer, int offset, int count); public byte[ ] ComputeHash(System.IO.Stream inputStream); public abstract void Initialize( ); public int TransformBlock(byte[ ] inputBuffer, int inputOffset, int inputCount, byte[ ] outputBuffer, int outputOffset); // implements ICryptoTransform public byte[ ] TransformFinalBlock(byte[ ] inputBuffer, int inputOffset, int inputCount); // implements ICryptoTransform // Protected Instance Methods protected virtual void Dispose(bool disposing); protected abstract void HashCore(byte[ ] array, int ibStart, int cbSize); protected abstract byte[ ] HashFinal( ); } A hash algorithm processes data to create a fixed-length string, known as a hash code. Hash algorithms are useful because it is difficult to find two sets of data that result in the same hash code; hash algorithms are an important part of the process to create digital signatures and are used to ensure data integrity. All hash algorithm implementations inherit from this abstract class. Implementation classes are instantiated using the Create( ) method, which accepts the name of an implementation as a String argument. The default algorithm is created if no implementation name is specified; the system administrator can configure the default algorithm. The ComputeHash( ) method generates a hash code by either processing a Byte array or by reading data from a Stream. Subclasses KeyedHashAlgorithm, MD5, SHA1, SHA256, SHA384, SHA512 Returned By SignatureDescription.CreateDigest( ), System.Security.Policy.HashMembershipCondition.HashAlgorithm Passed To AsymmetricSignatureDeformatter.VerifySignature( ), AsymmetricSignatureFormatter.CreateSignature( ), System.Security.Policy.Hash.GenerateHash( ), System.Security.Policy.HashMembershipCondition.{HashAlgorithm, HashMembershipCondition( )} |