HMAC Třída

Definice

Představuje abstraktní třídu, ze které musí být odvozeny všechny implementace ověřovacího kódu zpráv založeného na hodnotě hash (HMAC).Represents the abstract class from which all implementations of Hash-based Message Authentication Code (HMAC) must derive.

public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
type HMAC = class
    inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
Dědičnost
Odvozené
Atributy

Poznámky

Ověřovací kód zprávy (HMAC) založený na hodnotě hash se dá použít k určení, jestli se zpráva odeslaná přes nezabezpečený kanál pozměnila za předpokladu, že odesílatel a příjemce sdílí tajný klíč.A Hash-based Message Authentication Code (HMAC) can be used to determine whether a message sent over an insecure channel has been tampered with, provided that the sender and receiver share a secret key. Odesilatel vypočítá hodnotu hash pro původní data a pošle původní data i HMAC jako jednu zprávu.The sender computes the hash value for the original data and sends both the original data and the HMAC as a single message. Přijímač přepočítá hodnotu hash přijaté zprávy a zkontroluje, zda vypočítaná hodnota hash odpovídá předané hodnotě hash.The receiver recomputes the hash value on the received message and checks that the computed hash value matches the transmitted hash value.

HMAC lze použít s libovolnou iterační kryptografickou funkcí hash, jako je například MD5 nebo SHA-1, v kombinaci s sdíleným tajným klíčem.HMAC can be used with any iterative cryptographic hash function, such as MD5 or SHA-1, in combination with a secret shared key. Kryptografická síla HMAC závisí na vlastnostech základní funkce hash.The cryptographic strength of HMAC depends on the properties of the underlying hash function.

Jakákoli změna dat nebo hodnoty hash má za následek neshodu, protože ke změně zprávy a reprodukování správné hodnoty hash je nutná znalost tajného klíče.Any change to the data or the hash value results in a mismatch, because knowledge of the secret key is required to change the message and reproduce the correct hash value. Proto pokud se původní a vypočtené hodnoty hash shodují, zpráva je ověřena.Therefore, if the original and computed hash values match, the message is authenticated.

Microsoft doporučuje model zabezpečení založený na SHA-256 nebo lepší kvůli kolizi problémů s MD5 a SHA-1.Due to collision problems with MD5 and SHA-1, Microsoft recommends a security model based on SHA-256 or better.

Konstruktory

HMAC()

Inicializuje novou instanci třídy HMAC třídy.Initializes a new instance of the HMAC class.

Pole

HashSizeValue

Představuje velikost vypočítaného kódu hash v bitech.Represents the size, in bits, of the computed hash code.

(Zděděno od HashAlgorithm)
HashValue

Představuje hodnotu vypočítaného kódu hash.Represents the value of the computed hash code.

(Zděděno od HashAlgorithm)
KeyValue

Klíč, který se má použít v algoritmu hash.The key to use in the hash algorithm.

(Zděděno od KeyedHashAlgorithm)
State

Představuje stav výpočtu hodnoty hash.Represents the state of the hash computation.

(Zděděno od HashAlgorithm)

Vlastnosti

BlockSizeValue

Získá nebo nastaví velikost bloku, který se má použít v hodnotě hash.Gets or sets the block size to use in the hash value.

CanReuseTransform

Načte hodnotu, která označuje, zda lze aktuální transformaci znovu použít.Gets a value indicating whether the current transform can be reused.

(Zděděno od HashAlgorithm)
CanTransformMultipleBlocks

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda lze transformovat více bloků.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

(Zděděno od HashAlgorithm)
Hash

Získá hodnotu vypočítaného kódu hash.Gets the value of the computed hash code.

(Zděděno od HashAlgorithm)
HashName

Získá nebo nastaví název algoritmu hash, který se má použít pro algoritmus hash.Gets or sets the name of the hash algorithm to use for hashing.

HashSize

Získá velikost vypočítaného kódu hash v bitech.Gets the size, in bits, of the computed hash code.

(Zděděno od HashAlgorithm)
InputBlockSize

Při přepsání v odvozené třídě získá velikost vstupního bloku.When overridden in a derived class, gets the input block size.

(Zděděno od HashAlgorithm)
Key

Získá nebo nastaví klíč, který se má použít při výpočtu HMAC.Gets or sets the key to use in the HMAC calculation.

OutputBlockSize

Při přepsání v odvozené třídě získá velikost výstupního bloku.When overridden in a derived class, gets the output block size.

(Zděděno od HashAlgorithm)

Metody

Clear()

Uvolní všechny prostředky, které používá třída HashAlgorithm.Releases all resources used by the HashAlgorithm class.

(Zděděno od HashAlgorithm)
ComputeHash(Byte[])

Vypočítá hodnotu hash zadaného bajtového pole.Computes the hash value for the specified byte array.

(Zděděno od HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Vypočítá hodnotu hash pro určenou oblast zadaného bajtového pole.Computes the hash value for the specified region of the specified byte array.

(Zděděno od HashAlgorithm)
ComputeHash(Stream)

Vypočítá hodnotu hash pro zadaný objekt Stream.Computes the hash value for the specified Stream object.

(Zděděno od HashAlgorithm)
Create()

Vytvoří instanci výchozí implementace ověřovacího kódu zpráv (HMAC) založeného na hodnotě hash.Creates an instance of the default implementation of a Hash-based Message Authentication Code (HMAC).

Create(String)

Vytvoří instanci zadané implementace ověřovacího kódu zpráv založenou na hodnotě hash (HMAC).Creates an instance of the specified implementation of a Hash-based Message Authentication Code (HMAC).

Dispose()

Uvolní všechny prostředky používané aktuální instancí třídy HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

(Zděděno od HashAlgorithm)
Dispose(Boolean)

Uvolní nespravované prostředky, které používá třída HMAC, když je změna klíče legitimní a volitelně uvolní spravované prostředky.Releases the unmanaged resources used by the HMAC class when a key change is legitimate and optionally releases the managed resources.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.Gets the Type of the current 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.When overridden in a derived class, routes data written to the object into the HMAC algorithm for computing the HMAC value.

HashCore(ReadOnlySpan<Byte>)

Směruje Data zapsaná do objektu do algoritmu HMAC pro výpočet HMAC.Routes data written to the object into the HMAC algorithm for computing the HMAC.

HashFinal()

Při přepsání v odvozené třídě dokončí výpočet HMAC po zpracování posledních dat algoritmem.When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm.

Initialize()

Inicializuje instanci výchozí implementace HMAC.Initializes an instance of the default implementation of HMAC.

MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Vypočítá hodnotu hash pro určenou oblast vstupního bajtového pole a zkopíruje určenou oblast vstupního bajtového pole do zadané oblasti výstupního bajtového pole.Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

(Zděděno od HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Vypočítá hodnotu hash pro určenou oblast zadaného bajtového pole.Computes the hash value for the specified region of the specified byte array.

(Zděděno od HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Pokusí se vypočítat hodnotu hash pro zadané bajtové pole.Attempts to compute the hash value for the specified byte array.

(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.Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm.

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní nespravované prostředky používané HashAlgorithm a volitelně uvolňuje spravované prostředky.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

(Zděděno od HashAlgorithm)

Platí pro

Viz také