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 derivar todas las implementaciones del código de autenticación de mensajes basado en hash (HMAC).
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
- Herencia
- Derivado
- Atributos
Comentarios
Se puede usar un código de autenticación de mensajes basado en hash (HMAC) para determinar si se ha alterado un mensaje enviado a través de un canal no seguro, 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 da lugar a un error de coincidencia, ya que se requiere el conocimiento de la clave secreta para cambiar el mensaje y reproducir el valor hash correcto. Por lo tanto, si los valores hash originales y calculados coinciden, 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
HMAC() |
Inicializa una nueva instancia de la clase HMAC. |
Campos
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 del valor hash. (Heredado de HashAlgorithm) |
Propiedades
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 la transformación actual puede volver a usarse. (Heredado de HashAlgorithm) |
CanTransformMultipleBlocks |
Cuando se invalida 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 utilizar para la operación hash. |
HashSize |
Obtiene el tamaño en bits del código hash calculado. (Heredado de HashAlgorithm) |
InputBlockSize |
Cuando se invalida 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 invalida en una clase derivada, obtiene el tamaño del bloque de salida. (Heredado de HashAlgorithm) |
Métodos
Clear() |
Libera todos los recursos que utiliza la clase HashAlgorithm. (Heredado de HashAlgorithm) |
ComputeHash(Byte[]) |
Calcula el valor hash para la matriz de bytes especificada. (Heredado de HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Calcula el valor hash para la región especificada de la matriz de bytes indicada. (Heredado de HashAlgorithm) |
ComputeHash(Stream) |
Calcula el valor hash del objeto Stream especificado. (Heredado de HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Calcula de manera asincrónica el valor hash del objeto Stream especificado. (Heredado de HashAlgorithm) |
Create() |
Obsoletos.
Obsoletos.
Crea una instancia de la implementación predeterminada de un código de autenticación de mensajes basado en hash (HMAC). |
Create(String) |
Obsoletos.
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 clase HashAlgorithm. (Heredado de HashAlgorithm) |
Dispose(Boolean) |
Libera los recursos no administrados que usa la clase HMAC cuando un cambio de clave es legítimo y, opcionalmente, libera los recursos administrados. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve 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 en el objeto al algoritmo HMAC para el cálculo del valor de HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Envía los datos escritos en el objeto al algoritmo HMAC para el cálculo del HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Envía los datos escritos en el objeto al algoritmo hash para el cálculo del valor hash. (Heredado de HashAlgorithm) |
HashFinal() |
Cuando se invalida en una clase derivada, finaliza el cálculo de HMAC una vez que el algoritmo termina de procesar los últimos datos. |
Initialize() |
Inicializa una instancia de la implementación predeterminada de HMAC. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (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 para la región especificada de la matriz de bytes de entrada y copia la región especificada de la matriz de bytes de entrada resultante en la región indicada de la matriz de bytes de salida. (Heredado de HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Calcula el valor hash para la región especificada de la matriz de bytes indicada. (Heredado de HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Intenta calcular el valor de hash para la matriz de bytes especificada. (Heredado de HashAlgorithm) |
TryHashFinal(Span<Byte>, Int32) |
Intenta finalizar el cálculo de HMAC una vez que el algoritmo HMAC procesa los últimos datos. |
TryHashFinal(Span<Byte>, Int32) |
Intenta finalizar el cálculo de hash una vez que el algoritmo hash procesa los últimos datos. (Heredado de HashAlgorithm) |
Implementaciones de interfaz explícitas
IDisposable.Dispose() |
Libera los recursos no administrados que usa HashAlgorithm y, de forma opcional, libera los recursos administrados. (Heredado de HashAlgorithm) |