HMAC Klasa

Definicja

Reprezentuje klasę abstrakcyjną, z której muszą pochodzić wszystkie implementacje kodu uwierzytelniania komunikatów opartego na skrótach (HMAC).

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
Dziedziczenie
Pochodne
Atrybuty

Uwagi

Kod uwierzytelniania komunikatów oparty na skrótach (HMAC) może służyć do określenia, czy komunikat wysłany przez niezabezpieczony kanał został naruszony, pod warunkiem, że nadawca i odbiorca współużytkują klucz tajny. Nadawca oblicza wartość skrótu dla oryginalnych danych i wysyła zarówno oryginalne dane, jak i HMAC jako pojedynczy komunikat. Odbiorca ponownie oblicza wartość skrótu odebranego komunikatu i sprawdza, czy obliczona wartość skrótu jest zgodna z przesłaną wartością skrótu.

HMAC może być używany z dowolną iteracyjną funkcją skrótu kryptograficznego, taką jak MD5 lub SHA-1, w połączeniu z tajnym kluczem udostępnionym. Siła kryptograficzna HMAC zależy od właściwości podstawowej funkcji skrótu.

Każda zmiana danych lub wartości skrótu powoduje niezgodność, ponieważ znajomość klucza tajnego jest wymagana do zmiany komunikatu i odtworzenia poprawnej wartości skrótu. W związku z tym, jeśli oryginalne i obliczone wartości skrótu są zgodne, komunikat jest uwierzytelniany.

Ze względu na problemy z kolizjami z rozwiązaniem MD5 i SHA-1 firma Microsoft zaleca model zabezpieczeń oparty na algorytmie SHA-256 lub lepszym.

Konstruktory

Nazwa Opis
HMAC()

Inicjuje nowe wystąpienie klasy HMAC.

Pola

Nazwa Opis
HashSizeValue

Reprezentuje rozmiar w bitach obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
HashValue

Reprezentuje wartość obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
KeyValue

Klucz do użycia w algorytmie skrótu.

(Odziedziczone po KeyedHashAlgorithm)
State

Reprezentuje stan obliczeń skrótu.

(Odziedziczone po HashAlgorithm)

Właściwości

Nazwa Opis
BlockSizeValue

Pobiera lub ustawia rozmiar bloku do użycia w wartości skrótu.

CanReuseTransform

Pobiera wartość wskazującą, czy można ponownie użyć bieżącej transformacji.

(Odziedziczone po HashAlgorithm)
CanTransformMultipleBlocks

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy można przekształcić wiele bloków.

(Odziedziczone po HashAlgorithm)
Hash

Pobiera wartość obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
HashName

Pobiera lub ustawia nazwę algorytmu wyznaczania wartości skrótu do użycia na potrzeby tworzenia skrótów.

HashSize

Pobiera rozmiar w bitach obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
InputBlockSize

Po zastąpieniu w klasie pochodnej pobiera rozmiar bloku wejściowego.

(Odziedziczone po HashAlgorithm)
Key

Pobiera lub ustawia klucz do użycia w obliczeniach HMAC.

OutputBlockSize

Po zastąpieniu w klasie pochodnej pobiera rozmiar bloku wyjściowego.

(Odziedziczone po HashAlgorithm)

Metody

Nazwa Opis
Clear()

Zwalnia wszystkie zasoby używane przez klasę HashAlgorithm.

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

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
ComputeHash(Byte[])

Oblicza wartość skrótu dla określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
ComputeHash(Stream)

Oblicza wartość skrótu dla określonego Stream obiektu.

(Odziedziczone po HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Asynchronicznie oblicza wartość skrótu dla określonego Stream obiektu.

(Odziedziczone po HashAlgorithm)
Create()
Przestarzałe.
Przestarzałe.

Tworzy wystąpienie domyślnej implementacji kodu uwierzytelniania komunikatów opartego na skrótach (HMAC).

Create(String)
Przestarzałe.

Tworzy wystąpienie określonej implementacji kodu uwierzytelniania komunikatów opartych na skrótach (HMAC).

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie HashAlgorithm klasy.

(Odziedziczone po HashAlgorithm)
Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez klasę HMAC , gdy zmiana klucza jest legalna i opcjonalnie zwalnia zarządzane zasoby.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

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

Po przesłonięciu w klasie pochodnej dane są przesyłane do obiektu do algorytmu HMAC do obliczania wartości HMAC.

HashCore(ReadOnlySpan<Byte>)

Kieruje dane zapisywane do obiektu w algorytmie HMAC do obliczania HMAC.

HashFinal()

Po zastąpieniu w klasie pochodnej finalizuje obliczenia HMAC po przetworzeniu ostatnich danych przez algorytm.

Initialize()

Inicjuje wystąpienie domyślnej implementacji .HMAC

MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(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.

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

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

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

Próbuje obliczyć wartość skrótu dla określonej tablicy bajtów.

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

Próbuje sfinalizować obliczenia HMAC po przetworzeniu ostatnich danych przez algorytm HMAC.

Jawne implementacje interfejsu

Nazwa Opis
IDisposable.Dispose()

Zwalnia niezarządzane zasoby używane przez HashAlgorithm program i opcjonalnie zwalnia zarządzane zasoby.

(Odziedziczone po HashAlgorithm)

Dotyczy

Zobacz też