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
Kód HMAC (Hash-based Message Authentication Code) lze použít k určení, 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 rekomputuje hodnotu hash přijaté zprávy a zkontroluje, zda vypočítaná hodnota hash odpovídá přenášené hodnotě hash.
HMAC lze použít s libovolnou iterativní kryptografickou hashovou funkcí, jako je MD5 nebo SHA-1, v kombinaci s tajným sdíleným klíčem. Kryptografická síla HMAC závisí na vlastnostech základní hashové funkce.
Jakákoli změna dat nebo hodnoty hash má za následek neshodu, protože znalost tajného klíče je nutná ke změně zprávy a reprodukování správné hodnoty hash. Proto pokud se původní a vypočítané hodnoty hash shodují, zpráva se ověří.
Vzhledem ke kolizím problémů s MD5 a SHA-1 microsoft doporučuje model zabezpečení založený na algoritmu SHA-256 nebo lepším.
Konstruktory
| Name | Description |
|---|---|
| HMAC() |
Inicializuje novou instanci HMAC třídy. |
Pole
| Name | Description |
|---|---|
| HashSizeValue |
Představuje velikost vypočítaného hashového kódu v bitech. (Zděděno od HashAlgorithm) |
| HashValue |
Představuje hodnotu vypočítaného kódu hash. (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
| Name | Description |
|---|---|
| BlockSizeValue |
Získá nebo nastaví velikost bloku, která se má použít v hodnotě hash. |
| CanReuseTransform |
Získá hodnotu urč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, který se má použít pro hashování. |
| HashSize |
Získá velikost vypočítaného hash 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
| Name | Description |
|---|---|
| Clear() |
Uvolní všechny prostředky používané HashAlgorithm třídou. (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(Byte[]) |
Vypočítá hodnotu hash pro zadané 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é HMAC třídou, pokud je změna klíče legitimní a volitelně uvolní spravované prostředky. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (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. |
| HashFinal() |
Při přepsání v odvozené třídě dokončí výpočet HMAC po posledním zpracování dat algoritmem. |
| Initialize() |
Inicializuje instanci výchozí implementace HMAC. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (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 bajtového pole a zkopíruje zadanou oblast vstupního bajtového pole do zadané oblasti výstupního bajtového pole. (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é bajtové pole. (Zděděno od HashAlgorithm) |
| TryHashFinal(Span<Byte>, Int32) |
Pokusí se dokončit výpočet HMAC po zpracování posledních dat algoritmem HMAC. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Uvolní nespravované prostředky používané HashAlgorithm a volitelně uvolní spravované prostředky. (Zděděno od HashAlgorithm) |