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 da cui devono derivare tutte le implementazioni del codice HMAC (Hash-based Message Authentication Code).
public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
inherit KeyedHashAlgorithm
type HMAC = class
inherit KeyedHashAlgorithm
Public MustInherit Class HMAC
Inherits KeyedHashAlgorithm
- Ereditarietà
- Derivato
- Attributi
Commenti
Un codice HMAC (Hash-based Message Authentication Code) 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. Il livello di crittografia di HMAC dipende dalle proprietà della funzione hash sottostante.
Qualsiasi modifica apportata ai dati o al valore hash genera una mancata corrispondenza, perché è necessaria una conoscenza della 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
| Nome | Descrizione |
|---|---|
| HMAC() |
Inizializza una nuova istanza della classe HMAC. |
Campi
| Nome | Descrizione |
|---|---|
| HashSizeValue |
Rappresenta le dimensioni, 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à
| Nome | Descrizione |
|---|---|
| BlockSizeValue |
Ottiene o imposta le dimensioni del blocco da utilizzare nel valore hash. |
| CanReuseTransform |
Ottiene un valore che indica se la trasformazione corrente può essere riutilizzata. (Ereditato da HashAlgorithm) |
| CanTransformMultipleBlocks |
In caso di 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 utilizzare per l'hashing. |
| HashSize |
Ottiene le dimensioni, in bit, del codice hash calcolato. (Ereditato da HashAlgorithm) |
| InputBlockSize |
In caso di override in una classe derivata, ottiene le dimensioni del blocco di input. (Ereditato da HashAlgorithm) |
| Key |
Ottiene o imposta la chiave da utilizzare nel calcolo HMAC. |
| OutputBlockSize |
Quando sottoposto a override in una classe derivata, ottiene le dimensioni del blocco di output. (Ereditato da HashAlgorithm) |
Metodi
| Nome | Descrizione |
|---|---|
| Clear() |
Rilascia tutte le risorse usate dalla HashAlgorithm classe . (Ereditato da HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Calcola il valore hash per l'area specificata della matrice di byte specificata. (Ereditato da HashAlgorithm) |
| ComputeHash(Byte[]) |
Calcola il valore hash per la matrice di byte specificata. (Ereditato da HashAlgorithm) |
| ComputeHash(Stream) |
Calcola il valore hash per l'oggetto specificato Stream . (Ereditato da HashAlgorithm) |
| Create() |
Crea un'istanza dell'implementazione predefinita di un codice HMAC (Hash-based Message Authentication Code). |
| Create(String) |
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 HashAlgorithm classe . (Ereditato da HashAlgorithm) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate dalla HMAC classe quando una modifica della chiave è legittima 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 HMAC per calcolare il valore HMAC. |
| HashCore(ReadOnlySpan<Byte>) |
Indirizza i dati scritti nell'oggetto nell'algoritmo HMAC per il calcolo di HMAC. |
| HashFinal() |
Quando sottoposto a override in una classe derivata, finalizza il calcolo HMAC dopo l'elaborazione degli ultimi dati dall'algoritmo. |
| Initialize() |
Inizializza un'istanza dell'implementazione predefinita di HMAC. |
| 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. (Ereditato da HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
Calcola il valore hash per l'area specificata 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 HMAC dopo l'elaborazione degli ultimi dati dall'algoritmo HMAC. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDisposable.Dispose() |
Rilascia le risorse non gestite usate da HashAlgorithm e, facoltativamente, rilascia le risorse gestite. (Ereditato da HashAlgorithm) |