HashAlgorithm Třída

Definice

Představuje základní třídu, ze které musí být odvozeny všechny implementace kryptografických hash algoritmů.

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
Dědičnost
HashAlgorithm
Odvozené
Atributy
Implementuje

Příklady

Následující příklad kódu vypočítá SHA256 hodnotu hash pro pole. Tento příklad předpokládá, že existuje předdefinované pole dataArray[]bajtů . SHA256je odvozená třída .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)

Poznámky

Funkce hash jsou pro moderní kryptografii zásadní. Tyto funkce mapují binární řetězce libovolné délky na malé binární řetězce pevné délky, které se označují jako hodnoty hash. Kryptografická hashovací funkce má vlastnost, že je výpočetně neproveditelná, když najde dva odlišné vstupy, které mají hodnotu hash stejné hodnoty. Funkce hash se běžně používají s digitálními podpisy a pro integritu dat.

Hodnota hash se používá jako jedinečná hodnota s pevnou velikostí, která představuje velké množství dat. Hodnoty hash dvou sad dat by se měly shodovat, pokud se shodují i odpovídající data. Malé změny dat vedou k velkým nepředvídatelným změnám hodnoty hash.

Kvůli problémům s kolizí s sha1 microsoft doporučuje model zabezpečení založený na algoritmu SHA256 nebo lepším.

Poznámky pro implementátory

Když dědíte z HashAlgorithm třídy , musíte přepsat následující členy: HashCore(Byte[], Int32, Int32) a HashFinal().

Konstruktory

HashAlgorithm()

Inicializuje novou instanci HashAlgorithm třídy .

Pole

HashSizeValue

Představuje velikost vypočítaného hash kódu v bitech.

HashValue

Představuje hodnotu vypočítaného hash kódu.

State

Představuje stav výpočtu hodnoty hash.

Vlastnosti

CanReuseTransform

Získá hodnotu označující, zda aktuální transformace lze znovu použít.

CanTransformMultipleBlocks

Při přepsání v odvozené třídě získá hodnotu označující, zda lze transformovat více bloků.

Hash

Získá hodnotu vypočítaného hash kódu.

HashSize

Získá velikost vypočítaného hash kódu v bitech.

InputBlockSize

Při přepsání v odvozené třídě získá velikost vstupního bloku.

OutputBlockSize

Při přepsání v odvozené třídě získá velikost výstupního bloku.

Metody

Clear()

Uvolní všechny prostředky používané HashAlgorithm třídou .

ComputeHash(Byte[])

Vypočítá hodnotu hash zadaného pole bajtů.

ComputeHash(Byte[], Int32, Int32)

Vypočítá hodnotu hash pro zadanou oblast zadaného pole bajtů.

ComputeHash(Stream)

Vypočítá hodnotu hash pro zadaný Stream objekt.

ComputeHashAsync(Stream, CancellationToken)

Asynchronně vypočítá hodnotu hash pro zadaný Stream objekt.

Create()
Zastaralé.
Zastaralé.

Vytvoří instanci výchozí implementace hash algoritmu.

Create(String)
Zastaralé.

Vytvoří instanci zadané implementace hash algoritmu.

Dispose()

Uvolní všechny prostředky používané aktuální instancí HashAlgorithm třídy .

Dispose(Boolean)

Uvolní nespravované prostředky používané nástrojem HashAlgorithm a volitelně uvolní spravované prostředky.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
HashCore(Byte[], Int32, Int32)

Při přepsání v odvozené třídě směruje data zapsaná do objektu do hash algoritmu pro výpočet hodnoty hash.

HashCore(ReadOnlySpan<Byte>)

Směruje data zapsaná do objektu do hashovacího algoritmu pro výpočet hodnoty hash.

HashFinal()

Při přepsání v odvozené třídě dokončí výpočet hodnoty hash po posledním zpracování dat kryptografickým hashovacím algoritmem.

Initialize()

Obnoví hashovací algoritmus do počátečního stavu.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Vypočítá hodnotu hash pro zadanou oblast vstupního pole bajtů a zkopíruje zadanou oblast vstupního bajtového pole do zadané oblasti výstupního pole bajtů.

TransformFinalBlock(Byte[], Int32, Int32)

Vypočítá hodnotu hash pro zadanou oblast zadaného pole bajtů.

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

Pokusí se vypočítat hodnotu hash pro zadané pole bajtů.

TryHashFinal(Span<Byte>, Int32)

Pokusy o dokončení výpočtu hodnoty hash po zpracování posledních dat hashovacím algoritmem.

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní nespravované prostředky používané nástrojem HashAlgorithm a volitelně uvolní spravované prostředky.

Platí pro

Viz také