HMAC Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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) |