HashAlgorithm HashAlgorithm HashAlgorithm HashAlgorithm Class

Определение

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

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

Примеры

В следующем примере кода вычисляет пример 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 = gcnew SHA1CryptoServiceProvider;
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = new SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As New SHA1CryptoServiceProvider()
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.

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

При наследовании от 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() HashAlgorithm() HashAlgorithm()

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

Поля

HashSizeValue HashSizeValue HashSizeValue HashSizeValue

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

HashValue HashValue HashValue HashValue

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

State State State State

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

Свойства

CanReuseTransform CanReuseTransform CanReuseTransform CanReuseTransform

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

CanTransformMultipleBlocks CanTransformMultipleBlocks CanTransformMultipleBlocks CanTransformMultipleBlocks

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

Hash Hash Hash Hash

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

HashSize HashSize HashSize HashSize

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

InputBlockSize InputBlockSize InputBlockSize InputBlockSize

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

OutputBlockSize OutputBlockSize OutputBlockSize OutputBlockSize

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

Методы

Clear() Clear() Clear() Clear()

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

ComputeHash(Byte[]) ComputeHash(Byte[]) ComputeHash(Byte[]) ComputeHash(Byte[])

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

ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32)

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

ComputeHash(Stream) ComputeHash(Stream) ComputeHash(Stream) ComputeHash(Stream)

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

Create() Create() Create() Create()

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

Create(String) Create(String) Create(String) Create(String)

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

Dispose() Dispose() Dispose() Dispose()

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

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

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

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
HashCore(Byte[], Int32, Int32) HashCore(Byte[], Int32, Int32) HashCore(Byte[], Int32, Int32) 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>) HashCore(ReadOnlySpan<Byte>) HashCore(ReadOnlySpan<Byte>) HashCore(ReadOnlySpan<Byte>)
HashFinal() HashFinal() HashFinal() HashFinal()

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

Initialize() Initialize() Initialize() Initialize()

Инициализирует реализацию класса HashAlgorithm.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) TransformBlock(Byte[], Int32, Int32, Byte[], Int32) TransformBlock(Byte[], Int32, Int32, Byte[], Int32) 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) TransformFinalBlock(Byte[], Int32, Int32) TransformFinalBlock(Byte[], Int32, Int32) TransformFinalBlock(Byte[], Int32, Int32)

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

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

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

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

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

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

Дополнительно