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 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. |