HashAlgorithm Clase

Definición

Representa la clase base de la que deben derivarse todas las implementaciones de algoritmos hash criptográficos.

public ref class HashAlgorithm abstract : IDisposable, System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public abstract class HashAlgorithm : IDisposable, System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform, IDisposable
Public MustInherit Class HashAlgorithm
Implements IDisposable
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Herencia
HashAlgorithm
Derivado
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se calcula el SHA256 hash de una matriz. En este ejemplo se supone que hay una matriz dataArray[]de bytes predefinida . SHA256 es una clase derivada de HashAlgorithm.

HashAlgorithm^ sha = SHA256::Create();
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = SHA256.Create();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Comentarios

Las funciones hash son fundamentales para la criptografía moderna. Estas funciones asignan cadenas binarias de una longitud arbitraria a cadenas binarias pequeñas de una longitud fija, conocida como valores hash. Una función hash criptográfica tiene la propiedad que es computacionalmente inviable para buscar dos entradas distintas que hashen el mismo valor. Las funciones hash se usan normalmente con firmas digitales y en tareas de integridad de datos.

El hash se usa como un valor único de tamaño fijo que representa una gran cantidad de datos. Los hashes de dos conjuntos de datos deben coincidir si los datos correspondientes también coinciden. Los pequeños cambios en los datos dan lugar a cambios impredecibles grandes en el hash.

Debido a problemas de colisión con SHA1, Microsoft recomienda un modelo de seguridad basado en SHA256 o mejor.

Notas a los implementadores

Al heredar de la HashAlgorithm clase , debe invalidar los siguientes miembros: HashCore(Byte[], Int32, Int32) y HashFinal().

Constructores

HashAlgorithm()

Inicializa una nueva instancia de la clase HashAlgorithm.

Campos

HashSizeValue

Representa el tamaño en bits del código hash calculado.

HashValue

Representa el valor del código hash calculado.

State

Representa el estado del cálculo del valor hash.

Propiedades

CanReuseTransform

Obtiene un valor que indica si la transformación actual puede volver a usarse.

CanTransformMultipleBlocks

Cuando se invalida en una clase derivada, obtiene un valor que indica si se pueden transformar varios bloques.

Hash

Obtiene el valor del código hash calculado.

HashSize

Obtiene el tamaño en bits del código hash calculado.

InputBlockSize

Cuando se invalida en una clase derivada, obtiene el tamaño del bloque de entrada.

OutputBlockSize

Cuando se invalida en una clase derivada, obtiene el tamaño del bloque de salida.

Métodos

Clear()

Libera todos los recursos que utiliza la clase HashAlgorithm.

ComputeHash(Byte[])

Calcula el valor hash para la matriz de bytes especificada.

ComputeHash(Byte[], Int32, Int32)

Calcula el valor hash para la región especificada de la matriz de bytes indicada.

ComputeHash(Stream)

Calcula el valor hash del objeto Stream especificado.

ComputeHashAsync(Stream, CancellationToken)

Calcula de manera asincrónica el valor hash del objeto Stream especificado.

Create()
Obsoleto.
Obsoleto.

Crea una instancia de la implementación predeterminada de un algoritmo hash.

Create(String)

Crea una instancia de la implementación especificada de un algoritmo hash.

Dispose()

Libera todos los recursos usados por la instancia actual de la clase HashAlgorithm.

Dispose(Boolean)

Libera los recursos no administrados que usa HashAlgorithm y, de forma opcional, 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 hash para el cálculo del valor hash.

HashCore(ReadOnlySpan<Byte>)

Envía los datos escritos en el objeto al algoritmo hash para el cálculo del valor hash.

HashFinal()

Cuando se invalida en una clase derivada, finaliza el cálculo de hash una vez que el algoritmo hash criptográfico termina de procesar los últimos datos.

Initialize()

Restablece el algoritmo hash a su estado inicial.

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.

TransformFinalBlock(Byte[], Int32, Int32)

Calcula el valor hash para la región especificada de la matriz de bytes indicada.

TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Intenta calcular el valor de hash para la matriz de bytes especificada.

TryHashFinal(Span<Byte>, Int32)

Intenta finalizar el cálculo de hash una vez que el algoritmo hash procesa los últimos datos.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Libera los recursos no administrados que usa HashAlgorithm y, de forma opcional, libera los recursos administrados.

Se aplica a

Consulte también