Udostępnij za pośrednictwem


HashAlgorithm Klasa

Definicja

Reprezentuje klasę bazową, z której muszą pochodzić wszystkie implementacje algorytmów skrótów kryptograficznych.

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
Dziedziczenie
HashAlgorithm
Pochodne
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu oblicza SHA256 skrót dla tablicy. W tym przykładzie przyjęto założenie, że istnieje wstępnie zdefiniowana tablica dataArray[]bajtów . SHA256 jest klasą pochodną klasy 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)

Uwagi

Funkcje skrótu są podstawowe dla nowoczesnej kryptografii. Te funkcje mapować ciągi binarne dowolnej długości na małe ciągi binarne o stałej długości, znane jako wartości skrótu. Funkcja skrótu kryptograficznego ma właściwość, którą można obliczać w celu znalezienia dwóch odrębnych danych wejściowych, które mają wartość skrótu. Funkcje skrótu są często używane z podpisami cyfrowymi i integralnością danych.

Skrót jest używany jako unikatowa wartość o stałym rozmiarze reprezentującym dużą ilość danych. Skróty dwóch zestawów danych powinny być zgodne, jeśli odpowiednie dane również są zgodne. Niewielkie zmiany w danych powodują duże nieprzewidywalne zmiany skrótu.

Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca model zabezpieczeń oparty na algorytmie SHA256 lub lepszym.

Uwagi dotyczące implementowania

Podczas dziedziczenia HashAlgorithm z klasy należy zastąpić następujące elementy członkowskie: HashCore(Byte[], Int32, Int32) i HashFinal().

Konstruktory

HashAlgorithm()

Inicjuje nowe wystąpienie klasy HashAlgorithm.

Pola

HashSizeValue

Reprezentuje rozmiar w bitach obliczonego kodu skrótu.

HashValue

Reprezentuje wartość obliczonego kodu skrótu.

State

Reprezentuje stan obliczeń skrótu.

Właściwości

CanReuseTransform

Pobiera wartość wskazującą, czy można ponownie użyć bieżącej transformacji.

CanTransformMultipleBlocks

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy można przekształcić wiele bloków.

Hash

Pobiera wartość obliczonego kodu skrótu.

HashSize

Pobiera rozmiar w bitach obliczonego kodu skrótu.

InputBlockSize

Po przesłonięciu w klasie pochodnej pobiera rozmiar bloku wejściowego.

OutputBlockSize

Po zastąpieniu w klasie pochodnej pobiera rozmiar bloku wyjściowego.

Metody

Clear()

Zwalnia wszystkie zasoby używane przez klasę HashAlgorithm .

ComputeHash(Byte[])

Oblicza wartość skrótu dla określonej tablicy bajtów.

ComputeHash(Byte[], Int32, Int32)

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

ComputeHash(Stream)

Oblicza wartość skrótu dla określonego Stream obiektu.

ComputeHashAsync(Stream, CancellationToken)

Asynchronicznie oblicza wartość skrótu dla określonego Stream obiektu.

Create()
Przestarzałe.
Przestarzałe.

Tworzy wystąpienie domyślnej implementacji algorytmu skrótu.

Create(String)
Przestarzałe.

Tworzy wystąpienie określonej implementacji algorytmu skrótu.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy HashAlgorithm.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
HashCore(Byte[], Int32, Int32)

Po przesłonięciu w klasie pochodnej dane są przesyłane do obiektu do algorytmu skrótu do obliczania skrótu.

HashCore(ReadOnlySpan<Byte>)

Kieruje dane zapisywane do obiektu w algorytmie skrótu na potrzeby obliczania skrótu.

HashFinal()

Po zastąpieniu w klasie pochodnej finalizuje obliczenia skrótu po przetworzeniu ostatnich danych przez algorytm skrótu kryptograficznego.

Initialize()

Resetuje algorytm skrótu do stanu początkowego.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Oblicza wartość skrótu dla określonego regionu tablicy bajtów wejściowych i kopiuje określony region tablicy bajtów wejściowych do określonego regionu tablicy bajtów wyjściowych.

TransformFinalBlock(Byte[], Int32, Int32)

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

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

Próbuje obliczyć wartość skrótu dla określonej tablicy bajtów.

TryHashFinal(Span<Byte>, Int32)

Próbuje sfinalizować obliczanie skrótu po przetworzeniu ostatnich danych przez algorytm skrótu.

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

Dotyczy

Zobacz też