HMAC Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje abstraktní třídu, ze které musí být odvozeny všechny implementace kódu HMAC (Hash-based Message Authentication Code).
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
- Dědičnost
- Odvozené
- Atributy
Poznámky
Pomocí kódu HMAC (Hash-based Message Authentication Code) můžete určit, jestli byla zpráva poslaná přes nezabezpečený kanál manipulována za předpokladu, že odesílatel a příjemce sdílejí tajný klíč. Odesílatel vypočítá hodnotu hash pro původní data a odešle původní data i HMAC jako jednu zprávu. Příjemce přepočítá hodnotu hash přijaté zprávy a zkontroluje, zda vypočítaná hodnota hash odpovídá hodnotě přenášené hodnoty hash.
HMAC je možné použít s libovolnou iterativní kryptografickou hashovací funkcí, jako je MD5 nebo SHA-1, v kombinaci se sdíleným klíčem tajného kódu. Kryptografická síla HMAC závisí na vlastnostech podkladové hashovací funkce.
Jakákoli změna dat nebo hodnoty hash způsobí neshodu, protože ke změně zprávy a reprodukování správné hodnoty hash se vyžaduje znalost tajného klíče. Pokud se tedy původní a vypočítaná hodnota hash shodují, zpráva se ověří.
Kvůli problémům s kolizí s MD5 a SHA-1 microsoft doporučuje model zabezpečení založený na sha-256 nebo lepším.
Konstruktory
HMAC() |
Inicializuje novou instanci HMAC třídy. |
Pole
HashSizeValue |
Představuje velikost počítaného hash kódu v bitech. (Zděděno od HashAlgorithm) |
HashValue |
Představuje hodnotu vypočítaného hashového kódu. (Zděděno od HashAlgorithm) |
KeyValue |
Klíč, který se má použít v hashovacím algoritmu. (Zděděno od KeyedHashAlgorithm) |
State |
Představuje stav výpočtu hodnoty hash. (Zděděno od HashAlgorithm) |
Vlastnosti
BlockSizeValue |
Získá nebo nastaví velikost bloku, která se má použít v hodnotě hash. |
CanReuseTransform |
Získá hodnotu označující, zda aktuální transformace lze znovu použít. (Zděděno od HashAlgorithm) |
CanTransformMultipleBlocks |
Při přepsání v odvozené třídě získá hodnotu označující, zda lze transformovat více bloků. (Zděděno od HashAlgorithm) |
Hash |
Získá hodnotu vypočítaného hash kódu. (Zděděno od HashAlgorithm) |
HashName |
Získá nebo nastaví název hash algoritmu použít pro hashování. |
HashSize |
Získá velikost počítaného hashového kódu v bitech. (Zděděno od HashAlgorithm) |
InputBlockSize |
Při přepsání v odvozené třídě získá velikost vstupního bloku. (Zděděno od HashAlgorithm) |
Key |
Získá nebo nastaví klíč pro použití ve výpočtu HMAC. |
OutputBlockSize |
Při přepsání v odvozené třídě získá velikost výstupního bloku. (Zděděno od HashAlgorithm) |
Metody
Clear() |
Uvolní všechny prostředky používané HashAlgorithm třídou. (Zděděno od HashAlgorithm) |
ComputeHash(Byte[]) |
Vypočítá hodnotu hash pro zadané pole bajtů. (Zděděno od HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Vypočítá hodnotu hash pro zadanou oblast zadaného pole bajtů. (Zděděno od HashAlgorithm) |
ComputeHash(Stream) |
Vypočítá hodnotu hash pro zadaný Stream objekt. (Zděděno od HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Asynchronně vypočítá hodnotu hash pro zadaný Stream objekt. (Zděděno od HashAlgorithm) |
Create() |
Zastaralé.
Zastaralé.
Vytvoří instanci výchozí implementace kódu HMAC (Hash-based Message Authentication Code). |
Create(String) |
Zastaralé.
Vytvoří instanci zadané implementace kódu HMAC (Hash-based Message Authentication Code). |
Dispose() |
Uvolní všechny prostředky používané aktuální instancí HashAlgorithm třídy. (Zděděno od HashAlgorithm) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané třídou, HMAC pokud je změna klíče legitimní a volitelně uvolní spravované prostředky. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
HashCore(Byte[], Int32, Int32) |
Při přepsání v odvozené třídě směruje data zapsaná do objektu do algoritmu HMAC pro výpočet hodnoty HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Směruje data zapsaná do objektu do algoritmu HMAC pro výpočet HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Směruje data zapsaná do objektu do hash algoritmu pro výpočet hodnoty hash. (Zděděno od HashAlgorithm) |
HashFinal() |
Při přepsání v odvozené třídě dokončí výpočet HMAC poté, co algoritmus zpracuje poslední data. |
Initialize() |
Inicializuje instanci výchozí implementace .HMAC |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Vypočítá hodnotu hash pro zadanou oblast vstupního pole bajtů a zkopíruje zadanou oblast vstupního pole bajtů do zadané oblasti výstupního pole bajtů. (Zděděno od HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Vypočítá hodnotu hash pro zadanou oblast zadaného pole bajtů. (Zděděno od HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Pokusí se vypočítat hodnotu hash pro zadané pole bajtů. (Zděděno od HashAlgorithm) |
TryHashFinal(Span<Byte>, Int32) |
Pokusí se dokončit výpočet HMAC poté, co algoritmus HMAC zpracuje poslední data. |
TryHashFinal(Span<Byte>, Int32) |
Pokusí se dokončit výpočet hodnoty hash po zpracování posledních dat hashovacím algoritmem. (Zděděno od HashAlgorithm) |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Uvolní nespravované prostředky používané HashAlgorithm nástrojem a volitelně uvolní spravované prostředky. (Zděděno od HashAlgorithm) |