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

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)

Platí pro

Viz také