HMAC Clase

Definición

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)

Se aplica a

Consulte también