HMACSHA1 Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вычисляет хэш-код проверки подлинности сообщения (HMAC) с помощью хэш-функции SHA1.
public ref class HMACSHA1 : System::Security::Cryptography::HMAC
public ref class HMACSHA1 : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public class HMACSHA1 : System.Security.Cryptography.HMAC
public 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
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type HMACSHA1 = class
inherit HMAC
type HMACSHA1 = class
inherit HMAC
type HMACSHA1 = class
inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMACSHA1 = class
inherit HMAC
Public Class HMACSHA1
Inherits HMAC
Public Class HMACSHA1
Inherits KeyedHashAlgorithm
- Наследование
- Наследование
- Атрибуты
Комментарии
HMACSHA1 — это тип хэш-алгоритма с ключом, который создается на основе хэш-функции SHA1 и используется в качестве HMAC или кода проверки подлинности сообщения на основе хэша. Процесс HMAC смешивает секретный ключ с данными сообщения, хэширует результат с хэш-функцией, снова смешивает это хэш-значение с секретным ключом, а затем применяет хэш-функцию во второй раз. Длина выходного хэша составляет 160 бит.
HMAC можно использовать для определения того, было ли изменено сообщение, отправленное по незащищенным каналам, при условии, что отправитель и получатель совместно используют секретный ключ. Отправитель вычисляет хэш-значение для исходных данных и отправляет исходные данные и хэш-значение в виде одного сообщения. Получатель пересчитывает хэш-значение для полученного сообщения и проверяет, соответствует ли вычисленный HMAC переданной HMAC.
Любое изменение данных или хэш-значения приводит к несоответствию, так как для изменения сообщения и воспроизведения правильного хэш-значения требуется знание секретного ключа. Таким образом, если исходные и вычисляемые хэш-значения совпадают, сообщение проходит проверку подлинности.
SHA-1 (алгоритм безопасного хэша, также называемый SHS, Secure Hash Standard) — это криптографический хэш-алгоритм, опубликованный правительством США. Он создает 160-битовое хэш-значение из строки произвольной длины.
HMACSHA1 принимает ключи любого размера и создает хэш-последовательность длиной 160 бит.
Из-за конфликта с SHA1 корпорация Майкрософт рекомендует использовать SHA256.
Конструкторы
| HMACSHA1() |
Инициализирует новый экземпляр класса HMACSHA1 созданным случайным образом ключом. |
| HMACSHA1(Byte[]) |
Инициализирует новый экземпляр класса HMACSHA1 указанными данными ключа. |
| HMACSHA1(Byte[], Boolean) |
Устаревшие..
Инициализирует новый экземпляр класса HMACSHA1 с указанными данными ключа и значением, определяющим необходимость использования управляемой версии алгоритма SHA1. |
Поля
| HashSizeInBits |
Размер хэша, создаваемого алгоритмом HMAC SHA1, в битах. |
| HashSizeInBytes |
Размер хэша, создаваемого алгоритмом HMAC SHA1, в байтах. |
| 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[]) |
Вычисляет хэш-значение для заданного массива байтов. (Унаследовано от HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Вычисляет хэш-значение для заданной области заданного массива байтов. (Унаследовано от HashAlgorithm) |
| ComputeHash(Stream) |
Вычисляет хэш-значение для заданного объекта Stream. (Унаследовано от HashAlgorithm) |
| ComputeHashAsync(Stream, CancellationToken) |
Асинхронно вычисляет хэш-значение для заданного объекта 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. |
| HashCore(ReadOnlySpan<Byte>) |
Передает данные из объекта в HMAC-алгоритм для вычисления HMAC. (Унаследовано от HMAC) |
| HashCore(ReadOnlySpan<Byte>) |
Передает записываемые в объект данные в хэш-алгоритм для вычисления хэша. (Унаследовано от HashAlgorithm) |
| HashData(Byte[], Byte[]) |
Вычисляет HMAC данных с помощью алгоритма SHA1. |
| HashData(Byte[], Stream) |
Вычисляет HMAC потока с помощью алгоритма SHA1. |
| HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) |
Вычисляет HMAC данных с помощью алгоритма SHA1. |
| HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>) |
Вычисляет HMAC данных с помощью алгоритма SHA1. |
| HashData(ReadOnlySpan<Byte>, Stream) |
Вычисляет HMAC потока с помощью алгоритма SHA1. |
| HashData(ReadOnlySpan<Byte>, Stream, Span<Byte>) |
Вычисляет HMAC потока с помощью алгоритма SHA1. |
| HashDataAsync(Byte[], Stream, CancellationToken) |
Асинхронно вычисляет HMAC потока с помощью алгоритма SHA1. |
| HashDataAsync(ReadOnlyMemory<Byte>, Stream, CancellationToken) |
Асинхронно вычисляет HMAC потока с помощью алгоритма SHA1. |
| HashDataAsync(ReadOnlyMemory<Byte>, Stream, Memory<Byte>, CancellationToken) |
Асинхронно вычисляет HMAC потока с помощью алгоритма SHA1. |
| 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) |
| TryHashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Пытается вычислить HMAC данных с помощью алгоритма SHA1. |
| TryHashFinal(Span<Byte>, Int32) |
Пытается завершить вычисление HMAC после обработки последних данных алгоритмом HMAC. |
| TryHashFinal(Span<Byte>, Int32) |
Пытается завершить вычисление HMAC после обработки последних данных алгоритмом HMAC. (Унаследовано от HMAC) |
| TryHashFinal(Span<Byte>, Int32) |
Пытается завершить вычисление хэша после обработки последних данных хэш-алгоритмом. (Унаследовано от HashAlgorithm) |
Явные реализации интерфейса
| IDisposable.Dispose() |
Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от HashAlgorithm) |