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( )}
|