HMAC Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa la clase abstracta de la que deben derivarse todas las implementaciones del código de autenticación de mensajes basado en hash (HMAC).
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
- Herencia
- Derivado
- Atributos
Comentarios
Se puede usar un código de autenticación de mensajes basado en hash (HMAC) para determinar si un mensaje enviado a través de un canal no seguro se ha alterado, siempre que el remitente y el receptor compartan una clave secreta. El remitente calcula el valor hash de los datos originales y envía los datos originales y el HMAC como un único mensaje. El receptor vuelve a calcular el valor hash en el mensaje recibido y comprueba que el valor hash calculado coincide con el valor hash transmitido.
HMAC se puede usar con cualquier función hash criptográfica iterativa, como MD5 o SHA-1, en combinación con una clave compartida secreta. La intensidad criptográfica de HMAC depende de las propiedades de la función hash subyacente.
Cualquier cambio en los datos o en el valor hash produce un error de coincidencia, ya que se requiere conocimiento de la clave secreta para cambiar el mensaje y reproducir el valor hash correcto. Por lo tanto, si coinciden los valores hash originales y calculados, el mensaje se autentica.
Debido a problemas de colisión con MD5 y SHA-1, Microsoft recomienda un modelo de seguridad basado en SHA-256 o superior.
Constructores
| Nombre | Description |
|---|---|
| HMAC() |
Inicializa una nueva instancia de la clase HMAC. |
Campos
| Nombre | Description |
|---|---|
| HashSizeValue |
Representa el tamaño, en bits, del código hash calculado. (Heredado de HashAlgorithm) |
| HashValue |
Representa el valor del código hash calculado. (Heredado de HashAlgorithm) |
| KeyValue |
Clave que se va a usar en el algoritmo hash. (Heredado de KeyedHashAlgorithm) |
| State |
Representa el estado del cálculo hash. (Heredado de HashAlgorithm) |
Propiedades
| Nombre | Description |
|---|---|
| BlockSizeValue |
Obtiene o establece el tamaño de bloque que se va a usar en el valor hash. |
| CanReuseTransform |
Obtiene un valor que indica si se puede reutilizar la transformación actual. (Heredado de HashAlgorithm) |
| CanTransformMultipleBlocks |
Cuando se reemplaza en una clase derivada, obtiene un valor que indica si se pueden transformar varios bloques. (Heredado de HashAlgorithm) |
| Hash |
Obtiene el valor del código hash calculado. (Heredado de HashAlgorithm) |
| HashName |
Obtiene o establece el nombre del algoritmo hash que se va a usar para el hash. |
| HashSize |
Obtiene el tamaño, en bits, del código hash calculado. (Heredado de HashAlgorithm) |
| InputBlockSize |
Cuando se reemplaza en una clase derivada, obtiene el tamaño del bloque de entrada. (Heredado de HashAlgorithm) |
| Key |
Obtiene o establece la clave que se va a usar en el cálculo de HMAC. |
| OutputBlockSize |
Cuando se reemplaza en una clase derivada, obtiene el tamaño del bloque de salida. (Heredado de HashAlgorithm) |
Métodos
| Nombre | Description |
|---|---|
| Clear() |
Libera todos los recursos usados por la HashAlgorithm clase . (Heredado de HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Calcula el valor hash de la región especificada de la matriz de bytes especificada. (Heredado de HashAlgorithm) |
| ComputeHash(Byte[]) |
Calcula el valor hash de la matriz de bytes especificada. (Heredado de HashAlgorithm) |
| ComputeHash(Stream) |
Calcula el valor hash del objeto especificado Stream . (Heredado de HashAlgorithm) |
| Create() |
Crea una instancia de la implementación predeterminada de un código de autenticación de mensajes basado en hash (HMAC). |
| Create(String) |
Crea una instancia de la implementación especificada de un código de autenticación de mensajes basado en hash (HMAC). |
| Dispose() |
Libera todos los recursos usados por la instancia actual de la HashAlgorithm clase . (Heredado de HashAlgorithm) |
| Dispose(Boolean) |
Libera los recursos no administrados usados por la HMAC clase cuando un cambio de clave es legítimo y, opcionalmente, libera los recursos administrados. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| HashCore(Byte[], Int32, Int32) |
Cuando se invalida en una clase derivada, enruta los datos escritos al objeto en el algoritmo HMAC para calcular el valor HMAC. |
| HashCore(ReadOnlySpan<Byte>) |
Enruta los datos escritos al objeto en el algoritmo HMAC para calcular el HMAC. |
| HashFinal() |
Cuando se invalida en una clase derivada, finaliza el cálculo de HMAC después de que el algoritmo procese los últimos datos. |
| Initialize() |
Inicializa una instancia de la implementación predeterminada de HMAC. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Calcula el valor hash de la región especificada de la matriz de bytes de entrada y copia la región especificada de la matriz de bytes de entrada en la región especificada de la matriz de bytes de salida. (Heredado de HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
Calcula el valor hash de la región especificada de la matriz de bytes especificada. (Heredado de HashAlgorithm) |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Intenta calcular el valor hash de la matriz de bytes especificada. (Heredado de HashAlgorithm) |
| TryHashFinal(Span<Byte>, Int32) |
Intenta finalizar el cálculo de HMAC después de que el algoritmo HMAC procese los últimos datos. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IDisposable.Dispose() |
Libera los recursos no administrados utilizados por HashAlgorithm y, opcionalmente, libera los recursos administrados. (Heredado de HashAlgorithm) |