HashAlgorithm Classe

Definizione

Rappresenta la classe di base da cui devono derivare tutte le implementazioni degli algoritmi hash crittografici.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : 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
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements IDisposable
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();
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 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 lo stesso valore. Le funzioni hash vengono comunemente usate con 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. Piccole modifiche apportate ai dati generano modifiche imprevedibili di grandi dimensioni nell'hash.

A causa di problemi di collisione con SHA-1, Microsoft consiglia un modello di sicurezza basato su SHA-256 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

Nome Descrizione
HashAlgorithm()

Inizializza una nuova istanza della classe HashAlgorithm.

Campi

Nome Descrizione
HashSizeValue

Rappresenta le dimensioni, in bit, del codice hash calcolato.

HashValue

Rappresenta il valore del codice hash calcolato.

State

Rappresenta lo stato del calcolo hash.

Proprietà

Nome Descrizione
CanReuseTransform

Ottiene un valore che indica se la trasformazione corrente può essere riutilizzata.

CanTransformMultipleBlocks

In caso di 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 le dimensioni, in bit, del codice hash calcolato.

InputBlockSize

In caso di override in una classe derivata, ottiene le dimensioni del blocco di input.

OutputBlockSize

Quando sottoposto a override in una classe derivata, ottiene le dimensioni del blocco di output.

Metodi

Nome Descrizione
Clear()

Rilascia tutte le risorse usate dalla HashAlgorithm classe .

ComputeHash(Byte[], Int32, Int32)

Calcola il valore hash per l'area specificata della matrice di byte specificata.

ComputeHash(Byte[])

Calcola il valore hash per la matrice di byte specificata.

ComputeHash(Stream)

Calcola il valore hash per l'oggetto specificato Stream .

Create()

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

Create(String)

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

Dispose()

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

Dispose(Boolean)

Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, rilascia 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 il Type dell'istanza corrente.

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

In caso di override in una classe derivata, instrada i dati scritti nell'oggetto nell'algoritmo hash per calcolare l'hash.

HashCore(ReadOnlySpan<Byte>)

Indirizza i dati scritti nell'oggetto nell'algoritmo hash per calcolare l'hash.

HashFinal()

Quando sottoposto a override in una classe derivata, finalizza il calcolo hash dopo l'elaborazione degli ultimi dati dall'algoritmo hash crittografico.

Initialize()

Reimposta lo stato iniziale dell'algoritmo hash.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

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

Calcola il valore hash per l'area specificata della matrice di byte di input e copia l'area specificata della matrice di byte di input nell'area specificata della matrice di byte di output.

TransformFinalBlock(Byte[], Int32, Int32)

Calcola il valore hash per l'area specificata 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 dall'algoritmo hash.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IDisposable.Dispose()

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

Si applica a

Vedi anche