HashAlgorithm Klasse

Definition

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

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : 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
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements IDisposable
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();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Hinweise

Hashfunktionen sind für moderne Kryptografie von grundlegender Bedeutung. Diese Funktionen ordnen binäre Zeichenfolgen einer beliebigen Länge kleinen binären Zeichenfolgen einer festen Länge zu, die als Hashwerte bezeichnet wird. Eine kryptografische Hashfunktion verfügt über die Eigenschaft, dass sie rechnerisch nicht zu beachten ist, um zwei verschiedene Eingaben zu finden, die den Hash auf denselben Wert anwenden. Hashfunktionen werden häufig mit digitalen Signaturen und für die Datenintegrität verwendet.

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

Aufgrund von Kollisionsproblemen mit SHA-1 empfiehlt Microsoft ein Sicherheitsmodell, das auf SHA-256 oder höher basiert.

Hinweise für Ausführende

Wenn Sie von der HashAlgorithm Klasse erben, müssen Sie die folgenden Member außer Kraft setzen: HashCore(Byte[], Int32, Int32) und HashFinal().

Konstruktoren

Name Beschreibung
HashAlgorithm()

Initialisiert eine neue Instanz der HashAlgorithm-Klasse.

Felder

Name Beschreibung
HashSizeValue

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

HashValue

Stellt den Wert des berechneten Hashcodes dar.

State

Stellt den Status der Hashberechnung dar.

Eigenschaften

Name Beschreibung
CanReuseTransform

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

CanTransformMultipleBlocks

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, 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

Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft die Größe des Eingabeblocks ab.

OutputBlockSize

Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft die Ausgabeblockgröße ab.

Methoden

Name Beschreibung
Clear()

Gibt alle Ressourcen frei, die von der HashAlgorithm-Klasse verwendet werden.

ComputeHash(Byte[], Int32, Int32)

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

ComputeHash(Byte[])

Berechnet den Hashwert für das angegebene Bytearray.

ComputeHash(Stream)

Berechnet den Hashwert für das angegebene Stream Objekt.

Create()

Erstellt eine Instanz der Standardimplementierung eines Hashalgorithmus.

Create(String)

Erstellt eine Instanz der angegebenen Implementierung eines Hashalgorithmus.

Dispose()

Gibt alle Ressourcen frei, die von der aktuellen Instanz der HashAlgorithm Klasse verwendet werden.

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den HashAlgorithm verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

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

Wenn sie in einer abgeleiteten Klasse überschrieben werden, werden Daten, die in das Objekt geschrieben wurden, an den Hashalgorithmus weitergeleitet, um den Hash zu berechnen.

HashCore(ReadOnlySpan<Byte>)

Leitet Daten, die in das Objekt geschrieben wurden, an den Hashalgorithmus weiter, um den Hash zu berechnen.

HashFinal()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Hashberechnung abgeschlossen, nachdem die letzten Daten vom kryptografischen Hashalgorithmus verarbeitet wurden.

Initialize()

Setzt den Hashalgorithmus auf seinen Anfangszustand zurück.

MemberwiseClone()

Erstellt eine flache Kopie der 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)

Berechnet 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

Name Beschreibung
IDisposable.Dispose()

Gibt die nicht verwalteten Ressourcen frei, die von den HashAlgorithm verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

Gilt für:

Weitere Informationen