HMAC Klasa

Definicja

Reprezentuje klasę abstrakcyjną, z której wszystkie implementacje kod uwierzytelniania wiadomości (HMAC) oparte na skrócie muszą być pochodnymi.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
Dziedziczenie
Pochodne
Atrybuty

Uwagi

Przy użyciu kod uwierzytelniania wiadomości opartego na wykorzystaniu skrótu (HMAC) można określić, czy wiadomość wysłana za pośrednictwem niezabezpieczonego kanału została naruszona, pod warunkiem, że nadawca i odbiorca korzystają z klucza tajnego.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. Nadawca oblicza wartość skrótu dla oryginalnych danych i wysyła zarówno oryginalne dane, jak i HMAC jako jeden komunikat.The sender computes the hash value for the original data and sends both the original data and the HMAC as a single message. Odbiorca ponownie oblicza wartość skrótu dla odebranego komunikatu i sprawdza, czy obliczona wartość skrótu jest zgodna z przesłaną wartością skrótu.The receiver recomputes the hash value on the received message and checks that the computed hash value matches the transmitted hash value.

HMAC może być używany z każdą iteracyjną funkcją skrótu kryptograficznego, taką jak MD5 lub SHA-1, w połączeniu z kluczem udostępnionym tajny.HMAC can be used with any iterative cryptographic hash function, such as MD5 or SHA-1, in combination with a secret shared key. Kryptograficzna siła algorytmu HMAC zależy od właściwości bazowej funkcji skrótu.The cryptographic strength of HMAC depends on the properties of the underlying hash function.

Wszelkie zmiany danych lub wartości skrótu wynoszą niezgodność, ponieważ znajomość klucza tajnego jest wymagana do zmiany komunikatu i odtworzenia poprawnej wartości skrótu.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. W związku z tym, jeśli oryginalne i obliczone wartości skrótu są zgodne, komunikat jest uwierzytelniany.Therefore, if the original and computed hash values match, the message is authenticated.

Ze względu na kolizje problemów z algorytmem MD5 i algorytmem SHA-1 Firma Microsoft zaleca model zabezpieczeń oparty na algorytmie SHA-256 lub lepszym.Due to collision problems with MD5 and SHA-1, Microsoft recommends a security model based on SHA-256 or better.

Konstruktory

HMAC()

Inicjuje nowe wystąpienie klasy HMAC klasy.Initializes a new instance of the HMAC class.

Pola

HashSizeValue

Przedstawia rozmiar obliczanego kodu skrótu w bitach.Represents the size, in bits, of the computed hash code.

(Odziedziczone po HashAlgorithm)
HashValue

Reprezentuje wartość obliczanego kodu skrótu.Represents the value of the computed hash code.

(Odziedziczone po HashAlgorithm)
KeyValue

Klucz, który ma być używany w algorytmie wyznaczania wartości skrótu.The key to use in the hash algorithm.

(Odziedziczone po KeyedHashAlgorithm)
State

Reprezentuje stan obliczeń skrótu.Represents the state of the hash computation.

(Odziedziczone po HashAlgorithm)

Właściwości

BlockSizeValue

Pobiera lub ustawia rozmiar bloku, który ma być używany w wartości skrótu.Gets or sets the block size to use in the hash value.

CanReuseTransform

Pobiera wartość wskazującą, czy bieżące przekształcenie może być ponownie używane.Gets a value indicating whether the current transform can be reused.

(Odziedziczone po HashAlgorithm)
CanTransformMultipleBlocks

Gdy jest zastępowany w klasie pochodnej, pobiera wartość wskazującą, czy można przekształcać wiele bloków.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

(Odziedziczone po HashAlgorithm)
Hash

Pobiera wartość obliczanego kodu skrótu.Gets the value of the computed hash code.

(Odziedziczone po HashAlgorithm)
HashName

Pobiera lub ustawia nazwę algorytmu wyznaczania wartości skrótu, który ma być używany na potrzeby tworzenia skrótów.Gets or sets the name of the hash algorithm to use for hashing.

HashSize

Pobiera rozmiar obliczanego kodu skrótu w bitach.Gets the size, in bits, of the computed hash code.

(Odziedziczone po HashAlgorithm)
InputBlockSize

Gdy jest zastępowany w klasie pochodnej, pobiera rozmiar bloku danych wejściowych.When overridden in a derived class, gets the input block size.

(Odziedziczone po HashAlgorithm)
Key

Pobiera lub ustawia klucz, który ma być używany w obliczeniach HMAC.Gets or sets the key to use in the HMAC calculation.

OutputBlockSize

Gdy jest zastępowany w klasie pochodnej, pobiera rozmiar bloku wyjściowego.When overridden in a derived class, gets the output block size.

(Odziedziczone po HashAlgorithm)

Metody

Clear()

Zwalnia wszystkie zasoby używane przez klasę HashAlgorithm.Releases all resources used by the HashAlgorithm class.

(Odziedziczone po HashAlgorithm)
ComputeHash(Byte[])

Oblicza wartość skrótu dla określonej tablicy bajtów.Computes the hash value for the specified byte array.

(Odziedziczone po HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.Computes the hash value for the specified region of the specified byte array.

(Odziedziczone po HashAlgorithm)
ComputeHash(Stream)

Oblicza wartość skrótu dla określonego obiektu Stream.Computes the hash value for the specified Stream object.

(Odziedziczone po HashAlgorithm)
Create()

Tworzy wystąpienie domyślnej implementacji kod uwierzytelniania wiadomości opartej na skrótach (HMAC).Creates an instance of the default implementation of a Hash-based Message Authentication Code (HMAC).

Create(String)

Tworzy wystąpienie określonej implementacji kod uwierzytelniania wiadomości opartej na skrótach (HMAC).Creates an instance of the specified implementation of a Hash-based Message Authentication Code (HMAC).

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

(Odziedziczone po HashAlgorithm)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez klasę HMAC, gdy zmiana klucza jest wiarygodna i opcjonalnie zwalnia zarządzane zasoby.Releases the unmanaged resources used by the HMAC class when a key change is legitimate and optionally releases the managed resources.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
HashCore(Byte[], Int32, Int32)

Gdy jest zastępowany w klasie pochodnej, kieruje dane zapisywane do obiektu do algorytmu HMAC w celu obliczenia wartości 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>)

Przekierowuje dane zapisywane do obiektu do algorytmu HMAC na potrzeby przetwarzania HMAC.Routes data written to the object into the HMAC algorithm for computing the HMAC.

HashFinal()

Gdy jest zastępowany w klasie pochodnej, kończy obliczenia HMAC po przetworzeniu ostatnich danych przez algorytm.When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm.

Initialize()

Inicjuje wystąpienie domyślnej implementacji HMAC.Initializes an instance of the default implementation of HMAC.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Oblicza wartość skrótu dla określonego regionu tablicy bajtów wejściowych i kopiuje określony region tablicy bajtów wejściowych do określonego regionu tablicy bajtów wyjściowych.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.

(Odziedziczone po HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.Computes the hash value for the specified region of the specified byte array.

(Odziedziczone po HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Próbuje obliczyć wartość skrótu dla określonej tablicy bajtów.Attempts to compute the hash value for the specified byte array.

(Odziedziczone po HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Próbuje sfinalizować obliczenia HMAC po przetworzeniu ostatnich danych przez Algorytm HMAC.Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm.

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

(Odziedziczone po HashAlgorithm)

Dotyczy

Zobacz też