Поделиться через


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)

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

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