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