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) |