HashAlgorithm Класс

Определение

Представляет базовый класс, от которого должны быть производны все реализации алгоритмов шифрования хэша.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : IDisposable
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements IDisposable
Наследование
HashAlgorithm
Производный
Атрибуты
Реализации

Примеры

В следующем примере кода вычисляется SHA256 хэш для массива. В этом примере предполагается, что существует предопределенный массив dataArray[]байтов. SHA256 является производным классом HashAlgorithm.

HashAlgorithm sha = SHA256.Create();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Комментарии

Хэш-функции являются фундаментальными для современной криптографии. Эти функции сопоставляют двоичные строки произвольной длины с небольшими двоичными строками фиксированной длины, известной как хэш-значения. Криптографическая хэш-функция имеет свойство, которое вычисляется, чтобы найти два разных входных данных, хэшированных в одно и то же значение. Хэш-функции обычно используются с цифровыми подписями и для целостности данных.

Хэш используется в качестве уникального значения фиксированного размера, представляющего большой объем данных. Хэши двух наборов данных должны совпадать, если соответствующие данные также совпадают. Небольшие изменения данных приводят к большим непредсказуемым изменениям хэша.

Из-за проблем с столкновением с SHA-1 корпорация Майкрософт рекомендует модель безопасности на основе SHA-256 или более поздней версии.

Примечания для тех, кто реализует этот метод

При наследовании от HashAlgorithm класса необходимо переопределить следующие члены: HashCore(Byte[], Int32, Int32) и HashFinal().

Конструкторы

Имя Описание
HashAlgorithm()

Инициализирует новый экземпляр класса HashAlgorithm.

Поля

Имя Описание
HashSizeValue

Представляет размер в битах вычисляемого хэш-кода.

HashValue

Представляет значение вычисляемого хэш-кода.

State

Представляет состояние хэш-вычисления.

Свойства

Имя Описание
CanReuseTransform

Возвращает значение, указывающее, можно ли повторно использовать текущее преобразование.

CanTransformMultipleBlocks

При переопределении в производном классе получает значение, указывающее, можно ли преобразовать несколько блоков.

Hash

Возвращает значение вычисляемого хэш-кода.

HashSize

Возвращает размер в битах вычисляемого хэш-кода.

InputBlockSize

При переопределении в производном классе получает размер входного блока.

OutputBlockSize

При переопределении в производном классе получает размер выходного блока.

Методы

Имя Описание
Clear()

Освобождает все ресурсы, используемые классом HashAlgorithm .

ComputeHash(Byte[], Int32, Int32)

Вычисляет хэш-значение для указанного региона указанного массива байтов.

ComputeHash(Byte[])

Вычисляет хэш-значение для указанного массива байтов.

ComputeHash(Stream)

Вычисляет хэш-значение для указанного Stream объекта.

Create()

Создает экземпляр реализации хэш-алгоритма по умолчанию.

Create(String)

Создает экземпляр указанной реализации хэш-алгоритма.

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые HashAlgorithm и при необходимости освобождает управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
HashCore(Byte[], Int32, Int32)

При переопределении в производном классе направляет данные, записанные в объект, в хэш-алгоритм для вычисления хэша.

HashCore(ReadOnlySpan<Byte>)

Направляет данные, записанные в объект, в хэш-алгоритм для вычисления хэша.

HashFinal()

При переопределении в производном классе завершает вычисление хэша после обработки последних данных алгоритмом криптографического хэша.

Initialize()

Сбрасывает хэш-алгоритм в исходное состояние.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Вычисляет хэш-значение для указанного региона входного массива байтов и копирует указанный регион входного массива байтов в указанный регион выходного массива байтов.

TransformFinalBlock(Byte[], Int32, Int32)

Вычисляет хэш-значение для указанного региона указанного массива байтов.

TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Пытается вычислить хэш-значение для указанного массива байтов.

TryHashFinal(Span<Byte>, Int32)

Пытается завершить вычисление хэша после обработки последних данных алгоритмом хэша.

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

Освобождает неуправляемые ресурсы, используемые HashAlgorithm и при необходимости освобождает управляемые ресурсы.

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

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