HashAlgorithm Classe

Definição

Representa a classe base abstrata da qual todas as implementações de algoritmo de hash criptográficos devem derivar.Represents the base class from which all implementations of cryptographic hash algorithms must derive.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Herança
HashAlgorithm
Derivado
Atributos
Implementações

Exemplos

O exemplo de código a seguir computa SHA1CryptoServiceProvider o hash para uma matriz.The following code example computes the SHA1CryptoServiceProvider hash for an array. Este exemplo pressupõe que haja uma matriz dataArray[]de bytes predefinida.This example assumes that there is a predefined byte array dataArray[]. SHA1CryptoServiceProvideré uma classe derivada de HashAlgorithm.SHA1CryptoServiceProvider is a derived class of HashAlgorithm.

HashAlgorithm^ sha = gcnew SHA1CryptoServiceProvider;
array<Byte>^ result = sha->ComputeHash( dataArray );
HashAlgorithm sha = new SHA1CryptoServiceProvider();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As New SHA1CryptoServiceProvider()
Dim result As Byte() = sha.ComputeHash(dataArray)

Comentários

As funções de hash são fundamentais para a criptografia moderna.Hash functions are fundamental to modern cryptography. Essas funções mapeiam cadeias de caracteres binárias de um comprimento arbitrário para cadeias de caracteres binárias pequenas de um comprimento fixo, conhecidos como valores de hash.These functions map binary strings of an arbitrary length to small binary strings of a fixed length, known as hash values. Uma função de hash criptográfico tem a propriedade de que é computacionalmente impraticável localizar duas entradas distintas que conferem hash para o mesmo valor.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value. As funções de hash são comumente usadas com assinaturas digitais e integridade de dados.Hash functions are commonly used with digital signatures and for data integrity.

O hash é usado como um valor exclusivo de tamanho fixo que representa uma grande quantidade de dados.The hash is used as a unique value of fixed size representing a large amount of data. Hashes de dois conjuntos de dados devem corresponder se os dados correspondentes também corresponderem.Hashes of two sets of data should match if the corresponding data also matches. Pequenas alterações nos dados resultam em grandes alterações imprevisíveis no hash.Small changes to the data result in large unpredictable changes in the hash.

Devido a problemas de colisão com o SHA1, a Microsoft recomenda um modelo de segurança baseado em SHA256 ou melhor.Due to collision problems with SHA1, Microsoft recommends a security model based on SHA256 or better.

Notas aos Implementadores

Ao herdar da HashAlgorithm classe, você deve substituir os seguintes membros: HashCore(Byte[], Int32, Int32) e HashFinal().When you inherit from the HashAlgorithm class, you must override the following members: HashCore(Byte[], Int32, Int32) and HashFinal().

Construtores

HashAlgorithm()

Inicializa uma nova instância da classe HashAlgorithm.Initializes a new instance of the HashAlgorithm class.

Campos

HashSizeValue

Representa o tamanho, em bits, do código hash calculado.Represents the size, in bits, of the computed hash code.

HashValue

Representa o valor do código hash computado.Represents the value of the computed hash code.

State

Representa o estado do cálculo de hash.Represents the state of the hash computation.

Propriedades

CanReuseTransform

Obtém um valor que indica se a transformação atual pode ser reutilizada.Gets a value indicating whether the current transform can be reused.

CanTransformMultipleBlocks

Quando substituído em uma classe derivada, obtém um valor que indica se vários blocos podem ser transformados.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

Hash

Obtém o valor do código hash computado.Gets the value of the computed hash code.

HashSize

Obtém o tamanho, em bits, do código hash computado.Gets the size, in bits, of the computed hash code.

InputBlockSize

Quando substituído em uma classe derivada, obtém o tamanho do bloco de entrada.When overridden in a derived class, gets the input block size.

OutputBlockSize

Quando substituído em uma classe derivada, obtém o tamanho do bloco de saída.When overridden in a derived class, gets the output block size.

Métodos

Clear()

Libera todos os recursos usados pela classe HashAlgorithm.Releases all resources used by the HashAlgorithm class.

ComputeHash(Byte[])

Calcula o valor do hash da matriz de bytes especificada.Computes the hash value for the specified byte array.

ComputeHash(Byte[], Int32, Int32)

Calcula o valor de hash para a região especificada da matriz de bytes especificada.Computes the hash value for the specified region of the specified byte array.

ComputeHash(Stream)

Calcula o valor do hash do objeto Stream especificado.Computes the hash value for the specified Stream object.

Create()

Cria uma instância da implementação padrão de um algoritmo de hash.Creates an instance of the default implementation of a hash algorithm.

Create(String)

Cria uma instância da implementação especificada de um algoritmo de hash.Creates an instance of the specified implementation of a hash algorithm.

Dispose()

Libera todos os recursos usados pela instância atual da classe HashAlgorithm.Releases all resources used by the current instance of the HashAlgorithm class.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
HashCore(Byte[], Int32, Int32)

Quando substituído em uma classe derivada, roteia os dados gravados no objeto para o algoritmo de hash para computar o hash.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

HashCore(ReadOnlySpan<Byte>)
HashFinal()

Quando substituído em uma classe derivada, finaliza o cálculo de hash depois que os últimos dados são processados pelo objeto de fluxo criptográfico.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

Initialize()

Inicializa uma implementação da classe HashAlgorithm.Initializes an implementation of the HashAlgorithm class.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Calcula o valor de hash para a região especificada da matriz de bytes de entrada e copia a região especificada da matriz de bytes de entrada para a região especificada da matriz de bytes de saída.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 o valor de hash para a região especificada da matriz de bytes especificada.Computes the hash value for the specified region of the specified byte array.

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

Implantações explícitas de interface

IDisposable.Dispose()

Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

Aplica-se a

Veja também