HMAC 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 astratta dalla quale devono derivare tutte le implementazioni del codice HMAC (Hash-based Message Authentication Code).
public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
type HMAC = class
inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
- Ereditarietà
- Derivato
- Attributi
Commenti
Un codice di autenticazione dei messaggi basato su hash (HMAC) può essere usato per determinare se un messaggio inviato su un canale non sicuro è stato manomesso, a condizione che il mittente e il ricevitore condividono una chiave privata. Il mittente calcola il valore hash per i dati originali e invia sia i dati originali che HMAC come singolo messaggio. Il ricevitore ricompila il valore hash nel messaggio ricevuto e verifica che il valore hash calcolato corrisponda al valore hash trasmesso.
HMAC può essere usato con qualsiasi funzione hash crittografica iterativa, ad esempio MD5 o SHA-1, in combinazione con una chiave condivisa privata. La forza crittografica di HMAC dipende dalle proprietà della funzione hash sottostante.
Qualsiasi modifica ai dati o al valore hash comporta una mancata corrispondenza, perché è necessario conoscere la chiave privata per modificare il messaggio e riprodurre il valore hash corretto. Pertanto, se i valori hash originali e calcolati corrispondono, il messaggio viene autenticato.
A causa di problemi di collisione con MD5 e SHA-1, Microsoft consiglia un modello di sicurezza basato su SHA-256 o superiore.
Costruttori
HMAC() |
Inizializza una nuova istanza della classe HMAC. |
Campi
HashSizeValue |
Rappresenta la dimensione in bit del codice hash calcolato. (Ereditato da HashAlgorithm) |
HashValue |
Rappresenta il valore del codice hash calcolato. (Ereditato da HashAlgorithm) |
KeyValue |
Chiave da usare nell'algoritmo hash. (Ereditato da KeyedHashAlgorithm) |
State |
Rappresenta lo stato del calcolo hash. (Ereditato da HashAlgorithm) |
Proprietà
BlockSizeValue |
Ottiene o imposta la dimensione del blocco da utilizzare nel valore hash. |
CanReuseTransform |
Ottiene un valore che indica se è possibile riutilizzare la trasformazione corrente. (Ereditato da HashAlgorithm) |
CanTransformMultipleBlocks |
Quando ne viene eseguito l'override in una classe derivata, ottiene un valore che indica se è possibile trasformare più blocchi. (Ereditato da HashAlgorithm) |
Hash |
Ottiene il valore del codice hash calcolato. (Ereditato da HashAlgorithm) |
HashName |
Ottiene o imposta il nome dell'algoritmo hash da usare per la generazione di un hash. |
HashSize |
Ottiene la dimensione in bit del codice hash calcolato. (Ereditato da HashAlgorithm) |
InputBlockSize |
Quando ne viene eseguito l'override in una classe derivata, ottiene la dimensione del blocco di input. (Ereditato da HashAlgorithm) |
Key |
Ottiene o imposta la chiave da usare nel calcolo del valore HMAC. |
OutputBlockSize |
Quando ne viene eseguito l'override in una classe derivata, ottiene la dimensione del blocco di output. (Ereditato da HashAlgorithm) |
Metodi
Clear() |
Rilascia tutte le risorse usate dalla classe HashAlgorithm. (Ereditato da HashAlgorithm) |
ComputeHash(Byte[]) |
Consente di calcolare il valore hash della matrice di byte specificata. (Ereditato da HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Calcola il valore hash dell'area specifica della matrice di byte specificata. (Ereditato da HashAlgorithm) |
ComputeHash(Stream) |
Calcola il valore hash per l'oggetto Stream specificato. (Ereditato da HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Calcola in modo asincrono il valore hash per l'oggetto Stream specificato. (Ereditato da HashAlgorithm) |
Create() |
Obsoleti.
Obsoleti.
Crea un'istanza dell'implementazione predefinita di un codice HMAC. |
Create(String) |
Obsoleti.
Crea un'istanza dell'implementazione specificata di un codice HMAC (Hash-based Message Authentication Code). |
Dispose() |
Rilascia tutte le risorse usate dall'istanza corrente della classe HashAlgorithm. (Ereditato da HashAlgorithm) |
Dispose(Boolean) |
Libera le risorse non gestite usate dalla classe HMAC quando è lecito lo scambio delle chiavi ed eventualmente libera 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 HMAC per il calcolo del valore HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Consente di indirizzare i dati scritti nell'oggetto nell'HMAC per il calcolo del valore HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Consente di indirizzare i dati scritti nell'oggetto nell'algoritmo hash per il calcolo dell'hash. (Ereditato da HashAlgorithm) |
HashFinal() |
Quando ne viene eseguito l'override in una classe derivata, finalizza il calcolo del valore HMAC una volta che gli ultimi dati sono stati elaborati dall'algoritmo. |
Initialize() |
Inizializza un'istanza dell'implementazione predefinita di HMAC. |
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. (Ereditato da HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Calcola il valore hash dell'area specifica della matrice di byte specificata. (Ereditato da HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Tenta di calcolare il valore hash per la matrice di byte specificata. (Ereditato da HashAlgorithm) |
TryHashFinal(Span<Byte>, Int32) |
Tenta di finalizzare il calcolo del valore HMAC dopo l'elaborazione degli ultimi dati da parte dell'algoritmo HMAC. |
TryHashFinal(Span<Byte>, Int32) |
Tenta di finalizzare il calcolo hash dopo l'elaborazione degli ultimi dati da parte dell'algoritmo hash. (Ereditato da HashAlgorithm) |
Implementazioni dell'interfaccia esplicita
IDisposable.Dispose() |
Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, le risorse gestite. (Ereditato da HashAlgorithm) |