HMAC 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 abstrakte Klasse dar, von der alle Implementierungen von Hash-basierten Nachrichtenauthentifizierungscode (HMAC) abgeleitet werden müssen.
public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
type HMAC = class
inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
- Vererbung
- Abgeleitet
- Attribute
Hinweise
Ein hashbasierter Nachrichtenauthentifizierungscode (HMAC) kann verwendet werden, um zu bestimmen, ob eine Nachricht, die über einen unsicheren Kanal gesendet wurde, manipuliert wurde, vorausgesetzt, der Absender und der Empfänger geben einen geheimen Schlüssel frei. Der Absender berechnet den Hashwert für die ursprünglichen Daten und sendet sowohl die ursprünglichen Daten als auch den HMAC als einzelne Nachricht. Der Empfänger kompetiert den Hashwert für die empfangene Nachricht und überprüft, ob der berechnete Hashwert mit dem übertragenen Hashwert übereinstimmt.
HMAC kann mit jeder iterativen kryptografischen Hashfunktion verwendet werden, z. B. MD5 oder SHA-1, in Kombination mit einem geheimen freigegebenen Schlüssel. Die kryptografische Stärke von HMAC hängt von den Eigenschaften der zugrunde liegenden Hashfunktion ab.
Jede Änderung der Daten oder des Hashwerts führt zu einem Konflikt, da Kenntnisse des geheimen Schlüssels erforderlich sind, um die Nachricht zu ändern und den richtigen Hashwert zu reproduzieren. Wenn die ursprünglichen und berechneten Hashwerte übereinstimmen, wird die Nachricht authentifiziert.
Aufgrund von Kollisionsproblemen mit MD5 und SHA-1 empfiehlt Microsoft ein Sicherheitsmodell, das auf SHA-256 oder höher basiert.
Konstruktoren
| Name | Beschreibung |
|---|---|
| HMAC() |
Initialisiert eine neue Instanz der HMAC-Klasse. |
Felder
| Name | Beschreibung |
|---|---|
| HashSizeValue |
Stellt die Größe des berechneten Hashcodes in Bits dar. (Geerbt von HashAlgorithm) |
| HashValue |
Stellt den Wert des berechneten Hashcodes dar. (Geerbt von HashAlgorithm) |
| KeyValue |
Der Schlüssel, der im Hashalgorithmus verwendet werden soll. (Geerbt von KeyedHashAlgorithm) |
| State |
Stellt den Status der Hashberechnung dar. (Geerbt von HashAlgorithm) |
Eigenschaften
| Name | Beschreibung |
|---|---|
| BlockSizeValue |
Ruft die blockgröße ab, die im Hashwert verwendet werden soll, oder legt diese fest. |
| CanReuseTransform |
Ruft einen Wert ab, der angibt, ob die aktuelle Transformation wiederverwendet werden kann. (Geerbt von HashAlgorithm) |
| CanTransformMultipleBlocks |
Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob mehrere Blöcke transformiert werden können. (Geerbt von HashAlgorithm) |
| Hash |
Ruft den Wert des berechneten Hashcodes ab. (Geerbt von HashAlgorithm) |
| HashName |
Dient zum Abrufen oder Festlegen des Namens des Hashalgorithmus, der für das Hashing verwendet werden soll. |
| HashSize |
Ruft die Größe des berechneten Hashcodes in Bits ab. (Geerbt von HashAlgorithm) |
| InputBlockSize |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft die Größe des Eingabeblocks ab. (Geerbt von HashAlgorithm) |
| Key |
Ruft den Schlüssel ab, der in der HMAC-Berechnung verwendet werden soll, oder legt diesen fest. |
| OutputBlockSize |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft die Ausgabeblockgröße ab. (Geerbt von HashAlgorithm) |
Methoden
| Name | Beschreibung |
|---|---|
| Clear() |
Gibt alle Ressourcen frei, die von der HashAlgorithm-Klasse verwendet werden. (Geerbt von HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays. (Geerbt von HashAlgorithm) |
| ComputeHash(Byte[]) |
Berechnet den Hashwert für das angegebene Bytearray. (Geerbt von HashAlgorithm) |
| ComputeHash(Stream) |
Berechnet den Hashwert für das angegebene Stream Objekt. (Geerbt von HashAlgorithm) |
| ComputeHashAsync(Stream, CancellationToken) |
Berechnet asynchron den Hashwert für das angegebene Stream Objekt. (Geerbt von HashAlgorithm) |
| Create() |
Veraltet.
Veraltet.
Erstellt eine Instanz der Standardimplementierung eines Hash-basierten Nachrichtenauthentifizierungscodes (HMAC). |
| Create(String) |
Veraltet.
Erstellt eine Instanz der angegebenen Implementierung eines Hash-basierten Nachrichtenauthentifizierungscodes (HMAC). |
| Dispose() |
Gibt alle Ressourcen frei, die von der aktuellen Instanz der HashAlgorithm Klasse verwendet werden. (Geerbt von HashAlgorithm) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von der HMAC Klasse verwendet werden, wenn eine Schlüsseländerung legitim ist und optional die verwalteten Ressourcen freigibt. |
| 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 eine abgeleitete Klasse außer Kraft gesetzt wird, werden Daten, die in das Objekt geschrieben wurden, in den HMAC-Algorithmus weitergeleitet, um den HMAC-Wert zu berechnen. |
| HashCore(ReadOnlySpan<Byte>) |
Leitet Daten, die in das Objekt geschrieben wurden, an den HMAC-Algorithmus weiter, um den HMAC zu berechnen. |
| HashFinal() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die HMAC-Berechnung abgeschlossen, nachdem die letzten Daten vom Algorithmus verarbeitet wurden. |
| Initialize() |
Initialisiert eine Instanz der Standardimplementierung von HMAC. |
| 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. (Geerbt von HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
Berechnet den Hashwert für den angegebenen Bereich des angegebenen Bytearrays. (Geerbt von HashAlgorithm) |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Versucht, den Hashwert für das angegebene Bytearray zu berechnen. (Geerbt von HashAlgorithm) |
| TryHashFinal(Span<Byte>, Int32) |
Versuche, die HMAC-Berechnung abzuschließen, nachdem die letzten Daten vom HMAC-Algorithmus 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. (Geerbt von HashAlgorithm) |