HMACSHA1 Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вычисляет хэш-код проверки подлинности сообщений (HMAC) с помощью SHA1 хэш-функции.
public ref class HMACSHA1 : System::Security::Cryptography::KeyedHashAlgorithm
public ref class HMACSHA1 : System::Security::Cryptography::HMAC
public class HMACSHA1 : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public class HMACSHA1 : System.Security.Cryptography.HMAC
public class HMACSHA1 : System.Security.Cryptography.HMAC
type HMACSHA1 = class
inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMACSHA1 = class
inherit HMAC
type HMACSHA1 = class
inherit HMAC
Public Class HMACSHA1
Inherits KeyedHashAlgorithm
Public Class HMACSHA1
Inherits HMAC
- Наследование
- Наследование
- Атрибуты
Комментарии
HMACSHA1 — это тип хэш-алгоритма, созданного из хэш-функции SHA-1 и используемого в качестве HMAC или кода проверки подлинности на основе хэша. Процесс HMAC перемешивает секретный ключ с данными сообщения, хэширует результат с хэш-функцией, смешивает хэш-значение с секретным ключом снова, а затем применяет хэш-функцию во второй раз. Выходной хэш составляет 160 битов.
HMAC можно использовать для определения того, было ли отправлено сообщение через небезопасный канал, при условии, что отправитель и получатель имеют общий доступ к секретному ключу. Отправитель вычисляет хэш-значение для исходных данных и отправляет исходные данные и хэш-значение в виде одного сообщения. Получатель пересчитывает хэш-значение в полученном сообщении и проверяет, соответствует ли вычисляемый HMAC переданный HMAC.
Любое изменение данных или хэш-значения приводит к несоответствию, так как знание секретного ключа требуется для изменения сообщения и воспроизведения правильного хэш-значения. Таким образом, если исходные и вычисляемые хэш-значения совпадают, сообщение проходит проверку подлинности.
SHA-1 (безопасный хэш-алгоритм, также называемый SHS, Secure Hash Standard) — это криптографический хэш-алгоритм, опубликованный США правительством. Он создает 160-разрядное хэш-значение из произвольной строки длины.
HMACSHA1 принимает ключи любого размера и создает хэш-последовательность, которая составляет 160 битов.
Из-за проблем с столкновением с SHA-1 корпорация Майкрософт рекомендует SHA-256.
Конструкторы
| Имя | Описание |
|---|---|
| HMACSHA1() |
Инициализирует новый экземпляр HMACSHA1 класса со случайным образом созданным ключом. |
| HMACSHA1(Byte[], Boolean) |
Инициализирует новый экземпляр HMACSHA1 класса с указанными ключевыми данными и значением, которое указывает, следует ли использовать управляемую версию алгоритма SHA-1. |
| HMACSHA1(Byte[]) |
Инициализирует новый экземпляр HMACSHA1 класса с указанными ключевыми данными. |
Поля
| Имя | Описание |
|---|---|
| HashSizeValue |
Представляет размер в битах вычисляемого хэш-кода. (Унаследовано от HashAlgorithm) |
| HashValue |
Представляет значение вычисляемого хэш-кода. (Унаследовано от HashAlgorithm) |
| KeyValue |
Ключ, используемый в хэш-алгоритме. (Унаследовано от KeyedHashAlgorithm) |
| State |
Представляет состояние хэш-вычисления. (Унаследовано от HashAlgorithm) |
Свойства
| Имя | Описание |
|---|---|
| BlockSizeValue |
Возвращает или задает размер блока, используемый в хэш-значении. (Унаследовано от HMAC) |
| CanReuseTransform |
Возвращает значение, указывающее, можно ли повторно использовать текущее преобразование. (Унаследовано от HashAlgorithm) |
| CanTransformMultipleBlocks |
При переопределении в производном классе получает значение, указывающее, можно ли преобразовать несколько блоков. (Унаследовано от HashAlgorithm) |
| Hash |
Возвращает значение вычисляемого хэш-кода. (Унаследовано от HashAlgorithm) |
| HashName |
Возвращает или задает имя хэш-алгоритма, используемого для хэширования. |
| HashName |
Возвращает или задает имя хэш-алгоритма, используемого для хэширования. (Унаследовано от HMAC) |
| HashSize |
Возвращает размер вычисляемого HMAC в битах. |
| HashSize |
Возвращает размер в битах вычисляемого хэш-кода. (Унаследовано от HashAlgorithm) |
| InputBlockSize |
При переопределении в производном классе получает размер входного блока. (Унаследовано от HashAlgorithm) |
| Key |
Возвращает или задает ключ, используемый в хэш-алгоритме. |
| Key |
Возвращает или задает ключ, используемый в вычислении HMAC. (Унаследовано от HMAC) |
| OutputBlockSize |
При переопределении в производном классе получает размер выходного блока. (Унаследовано от HashAlgorithm) |
Методы
| Имя | Описание |
|---|---|
| Clear() |
Освобождает все ресурсы, используемые классом HashAlgorithm . (Унаследовано от HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Вычисляет хэш-значение для указанного региона указанного массива байтов. (Унаследовано от HashAlgorithm) |
| ComputeHash(Byte[]) |
Вычисляет хэш-значение для указанного массива байтов. (Унаследовано от HashAlgorithm) |
| ComputeHash(Stream) |
Вычисляет хэш-значение для указанного Stream объекта. (Унаследовано от HashAlgorithm) |
| Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm. (Унаследовано от HashAlgorithm) |
| Dispose(Boolean) |
Этот член переопределяет Dispose(Boolean)и более полную документацию может быть доступна в этом разделе. Освобождает неуправляемые ресурсы, используемые KeyedHashAlgorithm и при необходимости освобождает управляемые ресурсы. |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые HMAC классом, когда изменение ключа является законным и при необходимости освобождает управляемые ресурсы. (Унаследовано от HMAC) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Finalize() |
Позволяет объекту пытаться освободить ресурсы и выполнять другие операции очистки перед его восстановлением сборкой мусора. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| HashCore(Byte[], Int32, Int32) |
Направляет данные, записанные в объект, в хэш-алгоритм SHA1 для вычисления хэш-кода проверки подлинности сообщений (HMAC). |
| HashCore(Byte[], Int32, Int32) |
При переопределении в производном классе направляет данные, записанные в объект, в алгоритм HMAC для вычисления значения HMAC. (Унаследовано от HMAC) |
| HashCore(ReadOnlySpan<Byte>) |
Направляет данные, записанные в объект, в алгоритм HMAC для вычисления HMAC. |
| HashFinal() |
Завершает вычисление HMAC после обработки последних данных алгоритмом. |
| HashFinal() |
При переопределении в производном классе завершает вычисление HMAC после обработки последних данных алгоритмом. (Унаследовано от HMAC) |
| Initialize() |
Сбрасывает хэш-алгоритм в исходное состояние. |
| Initialize() |
Инициализирует экземпляр реализации HMACпо умолчанию. (Унаследовано от 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) |