HMAC Класс

Определение

Представляет абстрактный класс, от которого должны наследоваться все реализации хэш-кода проверки подлинности сообщения (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
Наследование
Производный
Атрибуты

Комментарии

Код проверки подлинности сообщений на основе хэша (HMAC) можно использовать для определения того, было ли отправлено сообщение по небезопасным каналам, при условии, что отправитель и получатель совместно используют секретный ключ. Отправитель вычисляет хэш-значение для исходных данных и отправляет исходные данные и HMAC в виде одного сообщения. Получатель повторно компилирует хэш-значение полученного сообщения и проверяет, соответствует ли вычисленное хэш-значение переданного хэша.

HMAC можно использовать с любой итеративной криптографической хэш-функцией, например MD5 или SHA-1, в сочетании с общим ключом секрета. Криптографическая надежность HMAC зависит от свойств базовой хэш-функции.

Любое изменение данных или хэш-значения приводит к несоответствию, так как знание секретного ключа требуется для изменения сообщения и воспроизведения правильного хэш-значения. Таким образом, если исходные и вычисляемые хэш-значения совпадают, сообщение проходит проверку подлинности.

Из-за проблем с конфликтами с MD5 и SHA-1 корпорация Майкрософт рекомендует модель безопасности на основе SHA-256 или более поздней версии.

Конструкторы

HMAC()

Инициализирует новый экземпляр класса HMAC.

Поля

HashSizeValue

Представляет размер вычисленного хэш-кода в битах.

(Унаследовано от HashAlgorithm)
HashValue

Представляет значение вычисляемого хэш-кода.

(Унаследовано от HashAlgorithm)
KeyValue

Ключ, используемый в хэш-алгоритме.

(Унаследовано от KeyedHashAlgorithm)
State

Представляет состояние процесса вычисления хэша.

(Унаследовано от HashAlgorithm)

Свойства

BlockSizeValue

Получает или задает размер блока, используемый в значении хэша.

CanReuseTransform

Получает значение, указывающее на возможность повторного использования текущего преобразования.

(Унаследовано от HashAlgorithm)
CanTransformMultipleBlocks

Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков.

(Унаследовано от HashAlgorithm)
Hash

Получает значение вычисленного хэш-кода.

(Унаследовано от HashAlgorithm)
HashName

Возвращает или задает имя используемого хэш-алгоритма.

HashSize

Получает размер вычисленного хэш-кода в битах.

(Унаследовано от HashAlgorithm)
InputBlockSize

При переопределении в производном классе получает размер входного блока.

(Унаследовано от HashAlgorithm)
Key

Возвращает или задает ключ, используемый при вычислении HMAC.

OutputBlockSize

При переопределении в производном классе получает размер выходного блока.

(Унаследовано от HashAlgorithm)

Методы

Clear()

Освобождает все ресурсы, используемые классом HashAlgorithm.

(Унаследовано от HashAlgorithm)
ComputeHash(Byte[])

Вычисляет хэш-значение для заданного массива байтов.

(Унаследовано от HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Вычисляет хэш-значение для заданной области заданного массива байтов.

(Унаследовано от HashAlgorithm)
ComputeHash(Stream)

Вычисляет хэш-значение для заданного объекта Stream.

(Унаследовано от HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Асинхронно вычисляет хэш-значение для заданного объекта Stream.

(Унаследовано от HashAlgorithm)
Create()
Является устаревшей.
Является устаревшей.

Создает экземпляр реализации хэш-кода проверки подлинности сообщения (HMAC) по умолчанию.

Create(String)

Создает экземпляр заданной реализации хэш-кода проверки подлинности сообщения (HMAC).

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm.

(Унаследовано от HashAlgorithm)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом HMAC, и, если допускается изменение ключа, опционально освобождает управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
HashCore(Byte[], Int32, Int32)

Если переопределено в производном классе, передает данные, записанные в объект, в HMAC-алгоритм для вычисления значения HMAC.

HashCore(ReadOnlySpan<Byte>)

Передает данные из объекта в HMAC-алгоритм для вычисления HMAC.

HashCore(ReadOnlySpan<Byte>)

Передает записываемые в объект данные в хэш-алгоритм для вычисления хэша.

(Унаследовано от HashAlgorithm)
HashFinal()

Если переопределено в производном классе, завершает вычисление HMAC после обработки последних данных алгоритмом.

Initialize()

Инициализирует новый экземпляр реализации по умолчанию класса HMAC.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Вычисляет хэш-значение для заданной области входного массива байтов и копирует указанную область входного массива байтов в заданную область выходного массива байтов.

(Унаследовано от HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Вычисляет хэш-значение для заданной области заданного массива байтов.

(Унаследовано от HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Пытается вычислить хэш-значение для заданного массива байтов.

(Унаследовано от HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Пытается завершить вычисление HMAC после обработки последних данных алгоритмом HMAC.

TryHashFinal(Span<Byte>, Int32)

Пытается завершить вычисление хэша после обработки последних данных хэш-алгоритмом.

(Унаследовано от HashAlgorithm)

Явные реализации интерфейса

IDisposable.Dispose()

Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от HashAlgorithm)

Применяется к

См. также раздел