HashAlgorithm Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет базовый класс, из которого создаются все реализации криптографических хэш-алгоритмов.
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
- Производный
- Атрибуты
- Реализации
Примеры
В следующем примере кода вычисляется SHA256 хэш для массива. В этом примере предполагается, что существует предопределенный массив байтов dataArray[]
.
SHA256является производным классом .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)
Комментарии
Хэш-функции являются фундаментальными для современной криптографии. Эти функции сопоставляют двоичные строки произвольной длины с небольшими двоичными строками фиксированной длины, называемыми хэш-значениями. Криптографическая хэш-функция имеет свойство, указывающее, что найти два разных входных данных, хэшируемых в одно и то же значение, невозможно. Хэш-функции обычно используются с цифровыми подписями и для обеспечения целостности данных.
Хэш используется в качестве уникального значения фиксированного размера, представляющего большой объем данных. Хэши двух наборов данных должны совпадать, если соответствующие данные также совпадают. Небольшие изменения данных приводят к большим непредсказуемым изменениям хэша.
Из-за проблем с SHA1 корпорация Майкрософт рекомендует использовать модель безопасности на основе SHA256 или более высокого уровня.
Примечания для тех, кто реализует этот метод
При наследовании HashAlgorithm от класса необходимо переопределить следующие члены: HashCore(Byte[], Int32, Int32) и HashFinal().
Конструкторы
HashAlgorithm() |
Инициализирует новый экземпляр класса HashAlgorithm. |
Поля
HashSizeValue |
Представляет размер вычисленного хэш-кода в битах. |
HashValue |
Представляет значение вычисляемого хэш-кода. |
State |
Представляет состояние процесса вычисления хэша. |
Свойства
CanReuseTransform |
Получает значение, указывающее на возможность повторного использования текущего преобразования. |
CanTransformMultipleBlocks |
Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков. |
Hash |
Получает значение вычисленного хэш-кода. |
HashSize |
Получает размер вычисленного хэш-кода в битах. |
InputBlockSize |
При переопределении в производном классе получает размер входного блока. |
OutputBlockSize |
При переопределении в производном классе получает размер выходного блока. |
Методы
Clear() |
Освобождает все ресурсы, используемые классом HashAlgorithm. |
ComputeHash(Byte[]) |
Вычисляет хэш-значение для заданного массива байтов. |
ComputeHash(Byte[], Int32, Int32) |
Вычисляет хэш-значение для заданной области заданного массива байтов. |
ComputeHash(Stream) |
Вычисляет хэш-значение для заданного объекта Stream. |
ComputeHashAsync(Stream, CancellationToken) |
Асинхронно вычисляет хэш-значение для заданного объекта 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, а при необходимости освобождает также управляемые ресурсы. |