HashAlgorithm Clase

Definición

Representa la clase base de la que deben derivarse todas las implementaciones de algoritmos hash criptográficos.Represents the base class from which all implementations of cryptographic hash algorithms must derive.

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 SHA1CryptoServiceProvider hash para una matriz.The following code example computes the SHA1CryptoServiceProvider hash for an array. En este ejemplo se da por supuesto que hay una matriz de bytes predefinida dataArray[] .This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProvider es una clase derivada de HashAlgorithm .SHA1CryptoServiceProvider is a derived class of 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.Hash functions are fundamental to modern cryptography. Estas funciones asignan cadenas binarias de longitud arbitraria a cadenas binarias pequeñas de una longitud fija, que se conoce como valores hash.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Una función hash criptográfica tiene la propiedad de que es computacionalmente imposible encontrar dos entradas distintas que tienen el mismo valor hash.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. Las funciones hash se usan normalmente con firmas digitales y en tareas de integridad de datos.Hash functions are commonly used with digital signatures and for data integrity.

El hash se usa como un valor único de tamaño fijo que representa una gran cantidad de datos.The hash is used as a unique value of fixed size representing a large amount of data. Los valores hash de dos conjuntos de datos deben coincidir si los datos correspondientes también coinciden.Hashes of two sets of data should match if the corresponding data also matches. Los pequeños cambios en los datos producen cambios imprevisibles grandes en el hash.Small changes to the data result in large unpredictable changes in the hash.

Debido a problemas de colisión con SHA1, Microsoft recomienda un modelo de seguridad basado en SHA256 o mejor.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

Notas a los implementadores

Al heredar de la HashAlgorithm clase, debe invalidar los miembros siguientes: HashCore(Byte[], Int32, Int32) y HashFinal() .When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

Constructores

HashAlgorithm()

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

Campos

HashSizeValue

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

HashValue

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

State

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

Propiedades

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.

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.

Hash

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

HashSize

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

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.

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.

Métodos

Clear()

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

ComputeHash(Byte[])

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

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.

ComputeHash(Stream)

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

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.

Create()

Crea una instancia de la implementación predeterminada de un algoritmo hash.Creates an instance of the default implementation of a hash algorithm.

Create(String)

Crea una instancia de la implementación especificada de un algoritmo hash.Creates an instance of the specified implementation of a hash algorithm.

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.

Dispose(Boolean)

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.

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 hash para el cálculo del valor hash.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

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.

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.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic hash algorithm.

Initialize()

Restablece el algoritmo hash a su estado inicial.Resets the hash algorithm to its initial state.

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.

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.

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.

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.

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.

Se aplica a

Consulte también