HashAlgorithm 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 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() |
Obsoletos.
Obsoletos.
Crea una instancia de la implementación predeterminada de un algoritmo hash. |
Create(String) |
Obsoletos.
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. |