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)

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

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