HashAlgorithm Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. |