Condividi tramite


HashAlgorithm Classe

Definizione

Rappresenta la classe base dalla quale devono derivare tutte le implementazioni degli algoritmi hash di crittografia.

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
Ereditarietà
HashAlgorithm
Derivato
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene calcolato l'hash SHA256 per una matrice. In questo esempio si presuppone che sia presente una matrice dataArray[]di byte predefinita. SHA256 è una classe derivata di 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)

Commenti

Le funzioni hash sono fondamentali per la crittografia moderna. Queste funzioni eseguono il mapping di stringhe binarie di lunghezza arbitraria a piccole stringhe binarie di lunghezza fissa, note come valori hash. Una funzione hash crittografica ha la proprietà che è infeasible a livello di calcolo per trovare due input distinti che eseguino l'hash allo stesso valore. Le funzioni hash vengono comunemente usate con le firme digitali e per l'integrità dei dati.

L'hash viene usato come valore univoco di dimensioni fisse che rappresentano una grande quantità di dati. Gli hash di due set di dati devono corrispondere se i dati corrispondenti corrispondono anche. Le piccole modifiche apportate ai dati comportano modifiche imprevedibili di grandi dimensioni nell'hash.

A causa di problemi di collisione con SHA1, Microsoft consiglia un modello di sicurezza basato su SHA256 o superiore.

Note per gli implementatori

Quando si eredita dalla HashAlgorithm classe , è necessario eseguire l'override dei membri seguenti: HashCore(Byte[], Int32, Int32) e HashFinal().

Costruttori

HashAlgorithm()

Inizializza una nuova istanza della classe HashAlgorithm.

Campi

HashSizeValue

Rappresenta la dimensione in bit del codice hash calcolato.

HashValue

Rappresenta il valore del codice hash calcolato.

State

Rappresenta lo stato del calcolo hash.

Proprietà

CanReuseTransform

Ottiene un valore che indica se è possibile riutilizzare la trasformazione corrente.

CanTransformMultipleBlocks

Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se è possibile trasformare più blocchi.

Hash

Ottiene il valore del codice hash calcolato.

HashSize

Ottiene la dimensione in bit del codice hash calcolato.

InputBlockSize

Quando ne viene eseguito l'override in una classe derivata, ottiene la dimensione del blocco di input.

OutputBlockSize

Quando ne viene eseguito l'override in una classe derivata, ottiene la dimensione del blocco di output.

Metodi

Clear()

Rilascia tutte le risorse usate dalla classe HashAlgorithm.

ComputeHash(Byte[])

Consente di calcolare il valore hash della matrice di byte specificata.

ComputeHash(Byte[], Int32, Int32)

Calcola il valore hash dell'area specifica della matrice di byte specificata.

ComputeHash(Stream)

Calcola il valore hash per l'oggetto Stream specificato.

ComputeHashAsync(Stream, CancellationToken)

Calcola in modo asincrono il valore hash per l'oggetto Stream specificato.

Create()
Obsoleti.
Obsoleti.

Crea un'istanza dell'implementazione predefinita di un algoritmo hash.

Create(String)
Obsoleti.

Crea un'istanza dell'implementazione specificata di un algoritmo hash.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe HashAlgorithm.

Dispose(Boolean)

Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HashCore(Byte[], Int32, Int32)

Quando ne viene eseguito l'override in una classe derivata, indirizza i dati scritti nell'oggetto verso l'algoritmo hash per il calcolo dell'hash.

HashCore(ReadOnlySpan<Byte>)

Consente di indirizzare i dati scritti nell'oggetto nell'algoritmo hash per il calcolo dell'hash.

HashFinal()

Quando ne viene eseguito l'override in una classe derivata, finalizza il calcolo hash una volta che gli ultimi dati sono stati elaborati dall'algoritmo hash crittografico.

Initialize()

Reimposta lo stato iniziale dell'algoritmo hash.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
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.

TransformFinalBlock(Byte[], Int32, Int32)

Calcola il valore hash dell'area specifica della matrice di byte specificata.

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

Tenta di calcolare il valore hash per la matrice di byte specificata.

TryHashFinal(Span<Byte>, Int32)

Tenta di finalizzare il calcolo hash dopo l'elaborazione degli ultimi dati da parte dell'algoritmo hash.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, le risorse gestite.

Si applica a

Vedi anche