HashAlgorithm Třída

Definice

Představuje základní třídu, ze které musí být odvozeny všechny implementace algoritmů kryptografického algoritmu hash.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
Dědičnost
HashAlgorithm
Odvozené
Atributy
Implementuje

Příklady

Následující příklad kódu vypočítá SHA1CryptoServiceProvider hodnotu hash pro pole.The following code example computes the SHA1CryptoServiceProvider hash for an array. V tomto příkladu se předpokládá, že existuje předdefinované pole dataArray[]bajtů.This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProviderje odvozenou třídou HashAlgorithmtřídy.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)

Poznámky

Funkce hash jsou základem pro moderní kryptografii.Hash functions are fundamental to modern cryptography. Tyto funkce mapují binární řetězce libovolné délky na malé binární řetězce s pevnou délkou, označované jako hodnoty hash.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Kryptografická funkce hash má vlastnost, kterou je výpočetně neproveditelná, aby nalezla dvě odlišné vstupy, které mají stejnou hodnotu hash.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. Funkce hash se běžně používají s digitálními podpisy a s integritou dat.Hash functions are commonly used with digital signatures and for data integrity.

Hodnota hash se používá jako jedinečná hodnota pevné velikosti, která představuje velké množství dat.The hash is used as a unique value of fixed size representing a large amount of data. Hodnoty hash dvou sad dat by se měly shodovat, pokud se odpovídající data také shodují.Hashes of two sets of data should match if the corresponding data also matches. Malé změny v datech mají za následek velké nepředvídatelné změny v hodnotě hash.Small changes to the data result in large unpredictable changes in the hash.

Z důvodu kolizí problémů se SHA1 společnost Microsoft doporučuje model zabezpečení založený na SHA256 nebo lépe.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

Poznámky pro dědice

Při dědění z HashAlgorithm třídy je nutné přepsat následující členy: HashCore(Byte[], Int32, Int32) a HashFinal().When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

Konstruktory

HashAlgorithm()

Inicializuje novou instanci třídy HashAlgorithm třídy.Initializes a new instance of the HashAlgorithm class.

Pole

HashSizeValue

Představuje velikost vypočítaného kódu hash v bitech.Represents the size, in bits, of the computed hash code.

HashValue

Představuje hodnotu vypočítaného kódu hash.Represents the value of the computed hash code.

State

Představuje stav výpočtu hodnoty hash.Represents the state of the hash computation.

Vlastnosti

CanReuseTransform

Načte hodnotu, která označuje, zda lze aktuální transformaci znovu použít.Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks

Při přepsání v odvozené třídě získá hodnotu, která označuje, zda lze transformovat více bloků.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash

Získá hodnotu vypočítaného kódu hash.Gets the value of the computed hash code.

HashSize

Získá velikost vypočítaného kódu hash v bitech.Gets the size, in bits, of the computed hash code.

InputBlockSize

Při přepsání v odvozené třídě získá velikost vstupního bloku.When overridden in a derived class, gets the input block size.

OutputBlockSize

Při přepsání v odvozené třídě získá velikost výstupního bloku.When overridden in a derived class, gets the output block size.

Metody

Clear()

Uvolní všechny prostředky používané HashAlgorithm třídou.Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[])

Vypočítá hodnotu hash zadaného bajtového pole.Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32)

Vypočítá hodnotu hash pro určenou oblast zadaného bajtového pole.Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream)

Vypočítá hodnotu hash pro zadaný Stream objekt.Computes the hash value for the specified Stream object.

Create()

Vytvoří instanci výchozí implementace algoritmu hash.Creates an instance of the default implementation of a hash algorithm.

Create(String)

Vytvoří instanci zadané implementace algoritmu hash.Creates an instance of the specified implementation of a hash algorithm.

Dispose()

Uvolní všechny prostředky používané aktuální instancí HashAlgorithm třídy.Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean)

Uvolní nespravované prostředky používané HashAlgorithm a volitelně uvolňuje spravované prostředky.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

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

Slouží jako výchozí funkce hash.Serves as the default hash function.

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

Type Získá aktuální instanci.Gets the Type of the current 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 algoritmu hash pro výpočet hodnoty hash.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>)
HashFinal()

Při přepsání v odvozené třídě dokončí výpočet hodnoty hash po zpracování posledních dat objektem kryptografického streamu.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

Initialize()

Inicializuje implementaci HashAlgorithm třídy.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone()

Vytvoří kopii aktuálního Objectseznamu.Creates a shallow copy of the current Object.

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

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

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

Vypočítá hodnotu hash pro určenou oblast vstupního bajtového pole a zkopíruje určenou oblast vstupního bajtového pole do zadané oblasti výstupního bajtového pole.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)

Vypočítá hodnotu hash pro určenou oblast zadaného bajtového pole.Computes the hash value for the specified region of the specified byte array.

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

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní nespravované prostředky používané HashAlgorithm a volitelně uvolňuje spravované prostředky.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Platí pro

Viz také