HashAlgorithm Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |