HashAlgorithm Класс

Определение

Представляет базовый класс, из которого создаются все реализации криптографических хэш-алгоритмов.Represents the base class from which all implementations of cryptographic hash algorithms must derive.

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

Примеры

Следующий пример кода вычислит SHA1CryptoServiceProvider хэш для массива.The following code example computes the SHA1CryptoServiceProvider hash for an array. В этом примере предполагается, что существует предопределенный массив байтов dataArray[] .This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProvider является производным классом класса HashAlgorithm .SHA1CryptoServiceProvider is a derived class of HashAlgorithm.

HashAlgorithm^ sha = SHA256::Create();
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = SHA256.Create();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Комментарии

Хэш-функции являются фундаментальными для современных криптографий.Hash functions are fundamental to modern cryptography. Эти функции сопоставляют двоичные строки произвольной длины с маленькими двоичными строками фиксированной длины, называемыми хэш-значениями.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Функция криптографической хэш-функции имеет свойство, которое вычисляется нецелесообразно для поиска двух различных входных значений, которые являются хэш-значениями для одного и того же значения.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. Хэш-функции обычно используются с цифровыми подписями и для обеспечения целостности данных.Hash functions are commonly used with digital signatures and for data integrity.

Хэш используется в качестве уникального значения фиксированного размера, представляющего большой объем данных.The hash is used as a unique value of fixed size representing a large amount of data. Хэши двух наборов данных должны совпадать, если соответствующие данные также совпадают.Hashes of two sets of data should match if the corresponding data also matches. Небольшие изменения данных приводят к большим непредсказуемым изменениям в хэше.Small changes to the data result in large unpredictable changes in the hash.

Из-за проблем с SHA1 корпорация Майкрософт рекомендует использовать модель безопасности на основе SHA256 или более высокого уровня.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

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

При наследовании от HashAlgorithm класса необходимо переопределить следующие члены: HashCore(Byte[], Int32, Int32) и HashFinal() .When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

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

HashAlgorithm()

Инициализирует новый экземпляр класса HashAlgorithm.Initializes a new instance of the HashAlgorithm class.

Поля

HashSizeValue

Представляет размер вычисленного хэш-кода в битах.Represents the size, in bits, of the computed hash code.

HashValue

Представляет значение вычисленного хэш-кода.Represents the value of the computed hash code.

State

Представляет состояние процесса вычисления хэша.Represents the state of the hash computation.

Свойства

CanReuseTransform

Получает значение, указывающее на возможность повторного использования текущего преобразования.Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks

Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash

Получает значение вычисленного хэш-кода.Gets the value of the computed hash code.

HashSize

Получает размер вычисленного хэш-кода в битах.Gets the size, in bits, of the computed hash code.

InputBlockSize

При переопределении в производном классе получает размер входного блока.When overridden in a derived class, gets the input block size.

OutputBlockSize

При переопределении в производном классе получает размер выходного блока.When overridden in a derived class, gets the output block size.

Методы

Clear()

Освобождает все ресурсы, используемые классом HashAlgorithm.Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[])

Вычисляет хэш-значение для заданного массива байтов.Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32)

Вычисляет хэш-значение для заданной области заданного массива байтов.Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream)

Вычисляет хэш-значение для заданного объекта Stream.Computes the hash value for the specified Stream object.

ComputeHashAsync(Stream, CancellationToken)

Асинхронно вычисляет хэш-значение для заданного объекта Stream.Asynchronously computes the hash value for the specified Stream object.

Create()

Создает экземпляр реализации по умолчанию хэш-алгоритма.Creates an instance of the default implementation of a hash algorithm.

Create(String)

Создает экземпляр заданной реализации хэш-алгоритма.Creates an instance of the specified implementation of a hash algorithm.

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит хэш-функцией по умолчанию.Serves as the default hash function.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

При переопределении в производном классе передает данные, записанные в объект, на вход хэш-алгоритма для вычисления хэша.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>)

Передает записываемые в объект данные в хэш-алгоритм для вычисления хэша.Routes data written to the object into the hash algorithm for computing the hash.

HashFinal()

Если переопределено в производном классе, завершает вычисление хэша после обработки последних данных криптографическим хэш-алгоритмом.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm.

Initialize()

Сбрасывает хэш-алгоритм в исходное состояние.Resets the hash algorithm to its initial state.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

Вычисляет хэш-значение для заданной области входного массива байтов и копирует указанную область входного массива байтов в заданную область выходного массива байтов.Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

TransformFinalBlock(Byte[], Int32, Int32)

Вычисляет хэш-значение для заданной области заданного массива байтов.Computes the hash value for the specified region of the specified byte array.

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

Пытается вычислить хэш-значение для заданного массива байтов.Attempts to compute the hash value for the specified byte array.

TryHashFinal(Span<Byte>, Int32)

Пытается завершить вычисление хэша после обработки последних данных хэш-алгоритмом.Attempts to finalize the hash computation after the last data is processed by the hash algorithm.

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

IDisposable.Dispose()

Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

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

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