HashAlgorithm Klasse

Definition

Stellt die abstrakte Basisklasse dar, von der alle Implementierungen kryptografischer Hashalgorithmen abgeleitet werden müssen.Represents the base class from which all implementations of cryptographic hash algorithms must derive.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Vererbung
HashAlgorithm
Abgeleitet
Attribute
Implementiert

Beispiele

Das folgende Codebeispiel berechnet den SHA1CryptoServiceProvider Hash für ein Array.The following code example computes the SHA1CryptoServiceProvider hash for an array. In diesem Beispiel wird davon ausgegangen, dass ein vordefiniertes Bytearray dataArray[]vorliegtThis example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProviderist eine abgeleitete Klasse HashAlgorithmvon.SHA1CryptoServiceProvider is a derived class of HashAlgorithm.

HashAlgorithm^ sha = gcnew SHA1CryptoServiceProvider;
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = new SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As New SHA1CryptoServiceProvider()
Dim result As Byte() = sha.ComputeHash(dataArray)

Hinweise

Hash Funktionen sind für moderne Kryptografie von grundlegender Bedeutung.Hash functions are fundamental to modern cryptography. Diese Funktionen ordnen binäre Zeichen folgen beliebiger Länge kleinen binären Zeichen folgen mit fester Länge zu, die als Hashwerte bezeichnet werden.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Eine kryptografiehash-Funktion hat die-Eigenschaft, dass Sie rechnerisch nicht auffindbar ist, um zwei unterschiedliche Eingaben zu finden, die zum gleichen Wert werden.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. Hash Funktionen werden häufig mit digitalen Signaturen und für die Datenintegrität verwendet.Hash functions are commonly used with digital signatures and for data integrity.

Der Hash wird als eindeutiger Wert fester Größe verwendet, der eine große Datenmenge darstellt.The hash is used as a unique value of fixed size representing a large amount of data. Hashwerte von zwei Datensätzen sollten übereinstimmen, wenn die entsprechenden Daten ebenfalls übereinstimmen.Hashes of two sets of data should match if the corresponding data also matches. Kleine Änderungen an den Daten führen zu großen unvorhersehbaren Änderungen am Hash.Small changes to the data result in large unpredictable changes in the hash.

Aufgrund von Problemen durch Konflikte mit SHA1 wird von Microsoft ein Sicherheitsmodell empfohlen, das mindestens auf SHA256 basiert.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

Hinweise für Vererber

Wenn Sie von der HashAlgorithm -Klasse erben, müssen Sie die folgenden Member überschreiben: HashCore(Byte[], Int32, Int32) und HashFinal().When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

Konstruktoren

HashAlgorithm()

Initialisiert eine neue Instanz der HashAlgorithm-Klasse.Initializes a new instance of the HashAlgorithm class.

Felder

HashSizeValue

Stellt die Größe des berechneten Hashcodes in Bits dar.Represents the size, in bits, of the computed hash code.

HashValue

Stellt den Wert des errechneten Hashcodes dar.Represents the value of the computed hash code.

State

Stellt den Zustand der Hashberechnung dar.Represents the state of the hash computation.

Eigenschaften

CanReuseTransform

Ruft einen Wert ab, der angibt, ob die aktuelle Transformation wiederverwendet werden kann.Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob mehrere Blöcke transformiert werden können.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash

Ruft den Wert des berechneten Hashcodes ab.Gets the value of the computed hash code.

HashSize

Ruft die Größe des berechneten Hashcodes in Bits ab.Gets the size, in bits, of the computed hash code.

InputBlockSize

Ruft beim Überschreiben in einer abgeleiteten Klasse die Eingabeblockgröße ab.When overridden in a derived class, gets the input block size.

OutputBlockSize

Ruft beim Überschreiben in einer abgeleiteten Klasse die Ausgabeblockgröße ab.When overridden in a derived class, gets the output block size.

Methoden

Clear()

Gibt alle von der HashAlgorithm-Klasse verwendeten Ressourcen frei.Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[])

Errechnet den Hashwert für das angegebene Bytearray.Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32)

Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays.Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream)

Berechnet den Hashwert für das angegebene Stream-Objekt.Computes the hash value for the specified Stream object.

Create()

Erstellt eine Instanz der Standardimplementierung eines Hashalgorithmus.Creates an instance of the default implementation of a hash algorithm.

Create(String)

Erstellt eine Instanz der angegebenen Implementierung eines Hashalgorithmus.Creates an instance of the specified implementation of a hash algorithm.

Dispose()

Gibt alle von der aktuellen Instanz der HashAlgorithm-Klasse verwendeten Ressourcen frei.Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean)

Gibt die von HashAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
HashCore(Byte[], Int32, Int32)

Leitet beim Überschreiben in einer abgeleiteten Klasse die in das Objekt geschriebenen Daten zum Errechnen des Hashs an den Hashalgorithmus weiter.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>)
HashFinal()

Schließt beim Überschreiben in einer abgeleiteten Klasse die Berechnung des Hashs ab, nachdem die letzten Daten vom Kryptografiestreamobjekt verarbeitet wurden.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

Initialize()

Initialisiert eine Implementierung der HashAlgorithm-Klasse.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Errechnet den Hashwert für den angegebenen Bereich des Eingabebytearrays und kopiert den angegebenen Bereich des Eingabebytearrays in den angegebenen Bereich des Ausgabebytearrays.Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

TransformFinalBlock(Byte[], Int32, Int32)

Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays.Computes the hash value for the specified region of the specified byte array.

TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)
TryHashFinal(Span<Byte>, Int32)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Gibt die von HashAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Gilt für:

Siehe auch