HMAC Clase

Definición

Representa la clase abstracta de la que deben derivar todas las implementaciones del código de autenticación de mensajes basado en hash (HMAC).Represents the abstract class from which all implementations of Hash-based Message Authentication Code (HMAC) must derive.

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

Un código de autentificación de mensajes (MAC) basado en hash (HMAC) se puede usar 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.A Hash-based Message Authentication Code (HMAC) can be used to determine whether a message sent over an insecure channel has been tampered with, provided that the sender and receiver share a secret key. El remitente calcula el valor hash de los datos originales y envía los datos originales y el HMAC como un solo mensaje.The sender computes the hash value for the original data and sends both the original data and the HMAC as a single message. El receptor vuelve a calcular el valor hash en el mensaje recibido y comprueba que el valor hash calculado coincida con el valor hash transmitido.The receiver recomputes the hash value on the received message and checks that the computed hash value matches the transmitted hash value.

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.HMAC can be used with any iterative cryptographic hash function, such as MD5 or SHA-1, in combination with a secret shared key. La intensidad criptográfica de HMAC depende de las propiedades de la función hash subyacente.The cryptographic strength of HMAC depends on the properties of the underlying hash function.

Cualquier cambio en los datos o en el valor hash produce una falta de coincidencia, ya que el conocimiento de la clave secreta es necesario para cambiar el mensaje y reproducir el valor hash correcto.Any change to the data or the hash value results in a mismatch, because knowledge of the secret key is required to change the message and reproduce the correct hash value. Por lo tanto, si los valores hash originales y calculados coinciden, el mensaje se autentica.Therefore, if the original and computed hash values match, the message is authenticated.

Debido a problemas de colisión con MD5 y SHA-1, Microsoft recomienda un modelo de seguridad basado en SHA-256 o superior.Due to collision problems with MD5 and SHA-1, Microsoft recommends a security model based on SHA-256 or better.

Constructores

HMAC()

Inicializa una nueva instancia de la clase HMAC.Initializes a new instance of the HMAC class.

Campos

HashSizeValue

Representa el tamaño en bits del código hash calculado.Represents the size, in bits, of the computed hash code.

(Heredado de HashAlgorithm)
HashValue

Representa el valor del código hash calculado.Represents the value of the computed hash code.

(Heredado de HashAlgorithm)
KeyValue

Clave que se va a usar en el algoritmo hash.The key to use in the hash algorithm.

(Heredado de KeyedHashAlgorithm)
State

Representa el estado del cálculo del valor hash.Represents the state of the hash computation.

(Heredado de HashAlgorithm)

Propiedades

BlockSizeValue

Obtiene o establece el tamaño de bloque que se va a usar en el valor hash.Gets or sets the block size to use in the hash value.

CanReuseTransform

Obtiene un valor que indica si la transformación actual puede volver a usarse.Gets a value indicating whether the current transform can be reused.

(Heredado de HashAlgorithm)
CanTransformMultipleBlocks

Cuando se invalida en una clase derivada, obtiene un valor que indica si se pueden transformar varios bloques.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

(Heredado de HashAlgorithm)
Hash

Obtiene el valor del código hash calculado.Gets the value of the computed hash code.

(Heredado de HashAlgorithm)
HashName

Obtiene o establece el nombre del algoritmo hash que se va a utilizar para la operación hash.Gets or sets the name of the hash algorithm to use for hashing.

HashSize

Obtiene el tamaño en bits del código hash calculado.Gets the size, in bits, of the computed hash code.

(Heredado de HashAlgorithm)
InputBlockSize

Cuando se invalida en una clase derivada, obtiene el tamaño del bloque de entrada.When overridden in a derived class, gets the input block size.

(Heredado de HashAlgorithm)
Key

Obtiene o establece la clave que se va a usar en el cálculo de HMAC.Gets or sets the key to use in the HMAC calculation.

OutputBlockSize

Cuando se invalida en una clase derivada, obtiene el tamaño del bloque de salida.When overridden in a derived class, gets the output block size.

(Heredado de HashAlgorithm)

Métodos

Clear()

Libera todos los recursos que utiliza la clase HashAlgorithm.Releases all resources used by the HashAlgorithm class.

(Heredado de HashAlgorithm)
ComputeHash(Byte[])

Calcula el valor hash para la matriz de bytes especificada.Computes the hash value for the specified byte array.

(Heredado de HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Calcula el valor hash para la región especificada de la matriz de bytes indicada.Computes the hash value for the specified region of the specified byte array.

(Heredado de HashAlgorithm)
ComputeHash(Stream)

Calcula el valor hash del objeto Stream especificado.Computes the hash value for the specified Stream object.

(Heredado de HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)

Calcula de manera asincrónica el valor hash del objeto Stream especificado.Asynchronously computes the hash value for the specified Stream object.

(Heredado de HashAlgorithm)
Create()
Obsoleto.

Crea una instancia de la implementación predeterminada de un código de autenticación de mensajes basado en hash (HMAC).Creates an instance of the default implementation of a Hash-based Message Authentication Code (HMAC).

Create(String)

Crea una instancia de la implementación especificada de un código de autenticación de mensajes basado en hash (HMAC).Creates an instance of the specified implementation of a Hash-based Message Authentication Code (HMAC).

Dispose()

Libera todos los recursos usados por la instancia actual de la clase HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

(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.Releases the unmanaged resources used by the HMAC class when a key change is legitimate and optionally releases the managed resources.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(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.When overridden in a derived class, routes data written to the object into the HMAC algorithm for computing the HMAC value.

HashCore(ReadOnlySpan<Byte>)

Envía los datos escritos en el objeto al algoritmo HMAC para el cálculo del HMAC.Routes data written to the object into the HMAC algorithm for computing the HMAC.

HashCore(ReadOnlySpan<Byte>)

Envía los datos escritos en el objeto al algoritmo hash para el cálculo del valor hash.Routes data written to the object into the hash algorithm for computing the 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.When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm.

Initialize()

Inicializa una instancia de la implementación predeterminada de HMAC.Initializes an instance of the default implementation of HMAC.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(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.Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

(Heredado de HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Calcula el valor hash para la región especificada de la matriz de bytes indicada.Computes the hash value for the specified region of the specified byte array.

(Heredado de HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Intenta calcular el valor de hash para la matriz de bytes especificada.Attempts to compute the hash value for the specified byte array.

(Heredado de HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Intenta finalizar el cálculo de HMAC una vez que el algoritmo HMAC procesa los últimos datos.Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm.

TryHashFinal(Span<Byte>, Int32)

Intenta finalizar el cálculo de hash una vez que el algoritmo hash procesa los últimos datos.Attempts to finalize the hash computation after the last data is processed by the hash algorithm.

(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.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

(Heredado de HashAlgorithm)

Se aplica a