Freigeben über


HashAlgorithm Klasse

Definition

Stellt die Basisklasse dar, von der alle Implementierungen kryptografischer Hashalgorithmen abgeleitet werden müssen.

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

Beispiele

Im folgenden Codebeispiel wird der SHA256 Hash für ein Array berechnet. In diesem Beispiel wird davon ausgegangen, dass ein vordefiniertes Bytearray dataArray[]vorhanden ist. SHA256 ist eine abgeleitete Klasse von HashAlgorithm.

HashAlgorithm^ sha = SHA256::Create();
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = SHA256.Create();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Hinweise

Hashfunktionen sind für die moderne Kryptografie von grundlegender Bedeutung. Diese Funktionen ordnen binäre Zeichenfolgen beliebiger Länge kleinen binären Zeichenfolgen einer festen Länge zu, die als Hashwerte bezeichnet werden. Eine kryptografische Hashfunktion weist die Eigenschaft auf, dass es rechnerisch nicht durchführbar ist, zwei unterschiedliche Eingaben zu finden, die auf denselben Wert hashen. Hashfunktionen werden häufig bei digitalen Signaturen und für die Datenintegrität verwendet.

Der Hash wird als eindeutiger Wert mit fester Größe verwendet, der eine große Datenmenge darstellt. Hashes von zwei Datasets sollten übereinstimmen, wenn die entsprechenden Daten ebenfalls übereinstimmen. Kleine Änderungen an den Daten führen zu großen unvorhersehbaren Änderungen im Hash.

Aufgrund von Problemen durch Konflikte mit SHA1 wird von Microsoft ein Sicherheitsmodell empfohlen, das mindestens auf SHA256 basiert.

Hinweise für Ausführende

Wenn Sie von der HashAlgorithm -Klasse erben, müssen Sie die folgenden Member überschreiben: HashCore(Byte[], Int32, Int32) und HashFinal().

Konstruktoren

HashAlgorithm()

Initialisiert eine neue Instanz der HashAlgorithm-Klasse.

Felder

HashSizeValue

Stellt die Größe des berechneten Hashcodes in Bits dar.

HashValue

Stellt den Wert des errechneten Hashcodes dar.

State

Stellt den Zustand der Hashberechnung dar.

Eigenschaften

CanReuseTransform

Ruft einen Wert ab, der angibt, ob die aktuelle Transformation wiederverwendet werden kann.

CanTransformMultipleBlocks

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob mehrere Blöcke transformiert werden können.

Hash

Ruft den Wert des berechneten Hashcodes ab.

HashSize

Ruft die Größe des berechneten Hashcodes in Bits ab.

InputBlockSize

Ruft beim Überschreiben in einer abgeleiteten Klasse die Eingabeblockgröße ab.

OutputBlockSize

Ruft beim Überschreiben in einer abgeleiteten Klasse die Ausgabeblockgröße ab.

Methoden

Clear()

Gibt alle von der HashAlgorithm-Klasse verwendeten Ressourcen frei.

ComputeHash(Byte[])

Errechnet den Hashwert für das angegebene Bytearray.

ComputeHash(Byte[], Int32, Int32)

Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays.

ComputeHash(Stream)

Berechnet den Hashwert für das angegebene Stream-Objekt.

ComputeHashAsync(Stream, CancellationToken)

Berechnet den Hashwert für das angegebene Stream-Objekt asynchron.

Create()
Veraltet.
Veraltet.

Erstellt eine Instanz der Standardimplementierung eines Hashalgorithmus.

Create(String)
Veraltet.

Erstellt eine Instanz der angegebenen Implementierung eines Hashalgorithmus.

Dispose()

Gibt alle von der aktuellen Instanz der HashAlgorithm-Klasse verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die von HashAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(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.

HashCore(ReadOnlySpan<Byte>)

Leitet die in das Objekt geschriebenen Daten zum Berechnen des Hashs in den Hashalgorithmus weiter.

HashFinal()

Schließt beim Überschreiben in einer abgeleiteten Klasse die Berechnung des Hashs ab, nachdem die letzten Daten vom kryptografischen Hashalgorithmus verarbeitet wurden.

Initialize()

Setzt den Hashalgorithmus auf seinen ursprünglichen Zustand zurück.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(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.

TransformFinalBlock(Byte[], Int32, Int32)

Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays.

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

Versucht, den Hashwert für das angegebene Bytearray zu berechnen.

TryHashFinal(Span<Byte>, Int32)

Versucht, die Hashberechnung abzuschließen, nachdem die letzten Daten vom Hashalgorithmus verarbeitet wurden.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Gibt die von HashAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

Gilt für:

Weitere Informationen