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