HashAlgorithm HashAlgorithm HashAlgorithm HashAlgorithm Class

Definizione

Rappresenta la classe base dalla quale devono derivare tutte le implementazioni degli algoritmi hash di crittografia.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
Ereditarietà
HashAlgorithmHashAlgorithmHashAlgorithmHashAlgorithm
Derivato
Attributi
Implementazioni

Esempi

Nell'esempio di codice seguente viene calcolato SHA1CryptoServiceProvider l'hash di una matrice.The following code example computes the SHA1CryptoServiceProvider hash for an array. In questo esempio si presuppone che esista una matrice dataArray[]di byte predefinita.This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProviderè una classe derivata di HashAlgorithm.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)

Commenti

Le funzioni hash sono fondamentali per la crittografia moderna.Hash functions are fundamental to modern cryptography. Queste funzioni mappano stringhe binarie di lunghezza arbitraria a stringhe binarie di piccole dimensioni a lunghezza fissa, note come valori hash.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Una funzione hash crittografica ha la proprietà che è inutilizzabile dal punto di vista del calcolo per trovare due input distinti che consentono di eseguire l'hashing allo stesso valore.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. Le funzioni hash vengono comunemente usate con le firme digitali e per l'integrità dei dati.Hash functions are commonly used with digital signatures and for data integrity.

L'hash viene utilizzato come valore univoco di dimensioni fisse che rappresenta una grande quantità di dati.The hash is used as a unique value of fixed size representing a large amount of data. Gli hash di due set di dati devono corrispondere se i dati corrispondenti corrispondono anche a.Hashes of two sets of data should match if the corresponding data also matches. Le piccole modifiche ai dati comportano modifiche imprevedibili di grandi dimensioni nell'hash.Small changes to the data result in large unpredictable changes in the hash.

A causa di problemi di collisione con SHA1, Microsoft consiglia un modello di sicurezza basato su SHA256 o superiore.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

Note per gli eredi

Quando si eredita dalla HashAlgorithm classe, è necessario eseguire l'override dei membri seguenti: HashFinal() HashCore(Byte[], Int32, Int32) e.When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

Costruttori

HashAlgorithm() HashAlgorithm() HashAlgorithm() HashAlgorithm()

Inizializza una nuova istanza della classe HashAlgorithm.Initializes a new instance of the HashAlgorithm class.

Campi

HashSizeValue HashSizeValue HashSizeValue HashSizeValue

Rappresenta la dimensione in bit del codice hash calcolato.Represents the size, in bits, of the computed hash code.

HashValue HashValue HashValue HashValue

Rappresenta il valore del codice hash calcolato.Represents the value of the computed hash code.

State State State State

Rappresenta lo stato del calcolo hash.Represents the state of the hash computation.

Proprietà

CanReuseTransform CanReuseTransform CanReuseTransform CanReuseTransform

Ottiene un valore che indica se è possibile riutilizzare la trasformazione corrente.Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks CanTransformMultipleBlocks CanTransformMultipleBlocks CanTransformMultipleBlocks

Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se è possibile trasformare più blocchi.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash Hash Hash Hash

Ottiene il valore del codice hash calcolato.Gets the value of the computed hash code.

HashSize HashSize HashSize HashSize

Ottiene la dimensione in bit del codice hash calcolato.Gets the size, in bits, of the computed hash code.

InputBlockSize InputBlockSize InputBlockSize InputBlockSize

Quando è sottoposta a override in una classe derivata, consente di ottenere la dimensione del blocco di input.When overridden in a derived class, gets the input block size.

OutputBlockSize OutputBlockSize OutputBlockSize OutputBlockSize

Quando è sottoposta a override in una classe derivata, consente di ottenere la dimensione del blocco di output.When overridden in a derived class, gets the output block size.

Metodi

Clear() Clear() Clear() Clear()

Rilascia tutte le risorse usate dalla classe HashAlgorithm.Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[]) ComputeHash(Byte[]) ComputeHash(Byte[]) ComputeHash(Byte[])

Consente di calcolare il valore hash della matrice di byte specificata.Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32) ComputeHash(Byte[], Int32, Int32)

Consente di calcolare il valore hash dell'area specifica della matrice di byte specificata.Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream) ComputeHash(Stream) ComputeHash(Stream) ComputeHash(Stream)

Calcola il valore hash per l'oggetto Stream specificato.Computes the hash value for the specified Stream object.

Create() Create() Create() Create()

Crea un'istanza dell'implementazione predefinita di un algoritmo hash.Creates an instance of the default implementation of a hash algorithm.

Create(String) Create(String) Create(String) Create(String)

Crea un'istanza dell'implementazione specificata di un algoritmo hash.Creates an instance of the specified implementation of a hash algorithm.

Dispose() Dispose() Dispose() Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
HashCore(Byte[], Int32, Int32) HashCore(Byte[], Int32, Int32) HashCore(Byte[], Int32, Int32) HashCore(Byte[], Int32, Int32)

Quando è sottoposto a override in una classe derivata, consente di indirizzare i dati scritti nell'oggetto verso l'algoritmo hash per il calcolo dell'hash.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>) HashCore(ReadOnlySpan<Byte>) HashCore(ReadOnlySpan<Byte>) HashCore(ReadOnlySpan<Byte>)
HashFinal() HashFinal() HashFinal() HashFinal()

Quando è sottoposto a override in una classe derivata, consente di finalizzare il calcolo hash una volta che gli ultimi dati sono stati elaborati dall'oggetto flusso crittografato.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

Initialize() Initialize() Initialize() Initialize()

Inizializza un'implementazione della classe HashAlgorithm.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) TransformBlock(Byte[], Int32, Int32, Byte[], Int32) TransformBlock(Byte[], Int32, Int32, Byte[], Int32) TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Consente di calcolare il valore hash dell'area specifica della matrice di byte di input e di copiare una determinata area della matrice di byte di input nell'area specifica della matrice di byte di output.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) TransformFinalBlock(Byte[], Int32, Int32) TransformFinalBlock(Byte[], Int32, Int32) TransformFinalBlock(Byte[], Int32, Int32)

Consente di calcolare il valore hash dell'area specifica della matrice di byte specificata.Computes the hash value for the specified region of the specified byte array.

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

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Si applica a

Vedi anche