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[], Int32, Int32)

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

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

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

(Унаследовано от 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.

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.

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

Имя Описание
IDisposable.Dispose()

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

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

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

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