HashAlgorithm Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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. |