HMAC Třída

Definice

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)

Platí pro

Viz také