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 : System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : 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
type HashAlgorithm = class
interface IDisposable
type HashAlgorithm = class
interface IDisposable
interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements IDisposable
- 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();
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, conocidas como valores hash. Una función hash criptográfica tiene la propiedad de que es computacionalmente inviable encontrar dos entradas distintas que hashen el mismo valor. Las funciones hash se usan normalmente con firmas digitales y para la integridad de los 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 producen grandes cambios imprevisibles en el hash.
Debido a problemas de colisión con SHA-1, Microsoft recomienda un modelo de seguridad basado en SHA-256 o superior.
Notas a los implementadores
Al heredar de la HashAlgorithm clase , debe invalidar los miembros siguientes: HashCore(Byte[], Int32, Int32) y HashFinal().
Constructores
| Nombre | Description |
|---|---|
| HashAlgorithm() |
Inicializa una nueva instancia de la clase HashAlgorithm. |
Campos
| Nombre | Description |
|---|---|
| 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 hash. |
Propiedades
| Nombre | Description |
|---|---|
| CanReuseTransform |
Obtiene un valor que indica si se puede reutilizar la transformación actual. |
| CanTransformMultipleBlocks |
Cuando se reemplaza 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 reemplaza en una clase derivada, obtiene el tamaño del bloque de entrada. |
| OutputBlockSize |
Cuando se reemplaza en una clase derivada, obtiene el tamaño del bloque de salida. |
Métodos
| Nombre | Description |
|---|---|
| Clear() |
Libera todos los recursos usados por la HashAlgorithm clase . |
| ComputeHash(Byte[], Int32, Int32) |
Calcula el valor hash de la región especificada de la matriz de bytes especificada. |
| ComputeHash(Byte[]) |
Calcula el valor hash de la matriz de bytes especificada. |
| ComputeHash(Stream) |
Calcula el valor hash del objeto especificado Stream . |
| Create() |
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 HashAlgorithm clase . |
| Dispose(Boolean) |
Libera los recursos no administrados utilizados por HashAlgorithm 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 hash para calcular el hash. |
| HashCore(ReadOnlySpan<Byte>) |
Enruta los datos escritos al objeto en el algoritmo hash para calcular el hash. |
| HashFinal() |
Cuando se invalida en una clase derivada, finaliza el cálculo hash después de que el algoritmo hash criptográfico procese los últimos datos. |
| Initialize() |
Restablece el algoritmo hash a su estado inicial. |
| 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. |
| TransformFinalBlock(Byte[], Int32, Int32) |
Calcula el valor hash de la región especificada de la matriz de bytes especificada. |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Intenta calcular el valor hash de la matriz de bytes especificada. |
| TryHashFinal(Span<Byte>, Int32) |
Intenta finalizar el cálculo hash después de que el algoritmo hash 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. |